Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Merampingkan alur kerja pembelajaran mesin dari pengembangan lokal hingga eksperimen yang dapat diskalakan dengan menggunakan SageMaker AI dan Hydra
David Sauerwein, Marco Geiger, dan Julian Ferdinand Grueber, Amazon Web Services
Ringkasan
Pola ini memberikan pendekatan terpadu untuk mengonfigurasi dan menjalankan algoritma pembelajaran mesin (ML) dari pengujian lokal hingga produksi di Amazon AI. SageMaker Algoritma ML adalah fokus dari pola ini, tetapi pendekatannya meluas ke fitur rekayasa, inferensi, dan seluruh jaringan pipa ML. Pola ini menunjukkan transisi dari pengembangan skrip lokal ke pekerjaan pelatihan SageMaker AI melalui kasus penggunaan sampel.
Alur kerja MS yang khas adalah mengembangkan dan menguji solusi pada mesin lokal, menjalankan eksperimen skala besar (misalnya, dengan parameter berbeda) di cloud, dan menerapkan solusi yang disetujui di cloud. Kemudian, solusi yang diterapkan harus dipantau dan dipelihara. Tanpa pendekatan terpadu untuk alur kerja ini, pengembang sering perlu memfaktorkan ulang kode mereka di setiap tahap. Jika solusinya bergantung pada sejumlah besar parameter yang mungkin berubah pada setiap tahap alur kerja ini, akan menjadi semakin sulit untuk tetap terorganisir dan konsisten.
Pola ini mengatasi tantangan ini. Pertama, ini menghilangkan kebutuhan akan refactoring kode antar lingkungan dengan menyediakan alur kerja terpadu yang tetap konsisten baik berjalan di mesin lokal, dalam wadah, atau pada AI. SageMaker Kedua, menyederhanakan manajemen parameter melalui sistem konfigurasi Hydra, di mana parameter didefinisikan dalam file konfigurasi terpisah yang dapat dengan mudah dimodifikasi dan digabungkan, dengan logging otomatis dari setiap konfigurasi run. Untuk detail selengkapnya tentang cara pola ini mengatasi tantangan ini, lihat Informasi tambahan.
Prasyarat dan batasan
Prasyarat
Aktif Akun AWS
Peran pengguna AWS Identity and Access Management (IAM) untuk menerapkan dan memulai pekerjaan pelatihan SageMaker AI
AWS Command Line Interface (AWS CLI) versi 2.0 atau yang lebih baru diinstal dan dikonfigurasi
Puisi
versi 1.8 atau lebih baru, tetapi lebih awal dari 2.0, diinstal
Batasan
Kode saat ini hanya menargetkan pekerjaan pelatihan SageMaker AI. Memperluasnya ke pekerjaan pemrosesan dan seluruh saluran SageMaker AI sangatlah mudah.
Untuk pengaturan SageMaker AI yang sepenuhnya diproduksi, detail tambahan harus ada. Contohnya bisa berupa kustom AWS Key Management Service (AWS KMS) kunci untuk komputasi dan penyimpanan, atau konfigurasi jaringan. Anda juga dapat mengonfigurasi opsi tambahan ini dengan menggunakan Hydra di subfolder khusus folder.
configBeberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat AWS Layanan menurut Wilayah
. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.
Arsitektur
Diagram berikut menggambarkan arsitektur solusi.

Diagram menunjukkan alur kerja berikut:
Ilmuwan data dapat mengulangi algoritma dalam skala kecil di lingkungan lokal, menyesuaikan parameter, dan menguji skrip pelatihan dengan cepat tanpa perlu Docker atau SageMaker AI. (Untuk detail selengkapnya, lihat tugas “Jalankan secara lokal untuk pengujian cepat” di Epik.)
Setelah puas dengan algoritme, ilmuwan data membangun dan mendorong image Docker ke repositori Amazon Elastic Container Registry (Amazon ECR) bernama.
hydra-sm-artifact(Untuk detail selengkapnya, lihat “Jalankan alur kerja di SageMaker AI” di Epik.)Ilmuwan data memulai pekerjaan pelatihan SageMaker AI atau pekerjaan optimasi hyperparameter (HPO) dengan menggunakan skrip Python. Untuk pekerjaan pelatihan reguler, konfigurasi yang disesuaikan ditulis ke bucket Amazon Simple Storage Service (Amazon S3) bernama.
hydra-sample-configUntuk pekerjaan HPO, set konfigurasi default yang terletak diconfigfolder diterapkan.Pekerjaan pelatihan SageMaker AI menarik image Docker, membaca data input dari bucket Amazon S3, dan mengambil konfigurasi dari
hydra-sample-databucket Amazon S3 atau menggunakan konfigurasi defaulthydra-sample-config. Setelah pelatihan, pekerjaan menyimpan data output ke bucket Amazon S3.hydra-sample-data
Otomatisasi dan skala
Untuk pelatihan otomatis, pelatihan ulang, atau inferensi, Anda dapat mengintegrasikan AWS CLI kode dengan layanan seperti AWS Lambda, AWS CodePipeline, atau Amazon. EventBridge
Penskalaan dapat dicapai dengan mengubah konfigurasi untuk ukuran instance atau dengan menambahkan konfigurasi untuk pelatihan terdistribusi.
Alat
Layanan AWS
AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS
AWS Command Line Interface (AWS CLI) adalah alat open source yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda. Untuk pola ini, AWS CLI berguna untuk konfigurasi sumber daya awal dan pengujian.
Amazon Elastic Container Registry (Amazon ECR) adalah layanan registri gambar kontainer terkelola yang aman, terukur, dan andal.
Amazon SageMaker AI adalah layanan pembelajaran mesin terkelola (ML) yang membantu Anda membangun dan melatih model ML, lalu menerapkannya ke lingkungan host yang siap produksi. SageMaker Pelatihan AI adalah layanan ML yang dikelola sepenuhnya dalam SageMaker AI yang memungkinkan pelatihan model ML dalam skala besar. Alat ini dapat menangani tuntutan komputasi model pelatihan secara efisien, memanfaatkan skalabilitas bawaan dan integrasi dengan yang lain. Layanan AWS SageMaker Pelatihan AI juga mendukung algoritme dan wadah khusus, membuatnya fleksibel untuk berbagai alur kerja ML.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Alat lainnya
Docker
adalah seperangkat produk platform as a service (PaaS) yang menggunakan virtualisasi pada tingkat sistem operasi untuk mengirimkan perangkat lunak dalam wadah. Ini digunakan dalam pola ini untuk memastikan lingkungan yang konsisten di berbagai tahap, mulai dari pengembangan hingga penerapan, dan untuk mengemas dependensi dan kode dengan andal. Kontainerisasi Docker memungkinkan penskalaan dan kontrol versi yang mudah di seluruh alur kerja. Hydra adalah
alat manajemen konfigurasi yang memberikan fleksibilitas untuk menangani beberapa konfigurasi dan manajemen sumber daya dinamis. Ini berperan penting dalam mengelola konfigurasi lingkungan, memungkinkan penyebaran yang mulus di berbagai lingkungan. Untuk detail selengkapnya tentang Hydra, lihat Informasi tambahan. Python adalah bahasa
pemrograman komputer tujuan umum. Python digunakan untuk menulis kode ML dan alur kerja penerapan. Puisi
adalah alat untuk manajemen ketergantungan dan pengemasan dengan Python.
Repositori kode
Kode untuk pola ini tersedia di repositori GitHub configuring-sagemaker-training-jobs-with-hydra
Praktik terbaik
Pilih peran IAM untuk menerapkan dan memulai pekerjaan pelatihan SageMaker AI yang mengikuti prinsip hak istimewa paling sedikit dan berikan izin minimum yang diperlukan untuk melakukan tugas. Untuk informasi selengkapnya, lihat Berikan hak istimewa terkecil dan praktik terbaik Keamanan dalam dokumentasi IAM.
Gunakan kredensi sementara untuk mengakses peran IAM di terminal.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat dan aktifkan lingkungan virtual. | Untuk membuat dan mengaktifkan lingkungan virtual, jalankan perintah berikut di root repositori:
| AWS Umum |
Menyebarkan infrastruktur. | Untuk menyebarkan infrastruktur menggunakan CloudFormation, jalankan perintah berikut:
| AWS Umum, DevOps insinyur |
Unduh data sampel. | Untuk men-download data input dari openmlke
| AWS Umum |
Jalankan secara lokal untuk pengujian cepat. | Untuk menjalankan kode pelatihan secara lokal untuk pengujian, jalankan perintah berikut:
Log dari semua eksekusi disimpan oleh waktu eksekusi dalam folder bernama Anda juga dapat melakukan beberapa pelatihan secara paralel, dengan parameter yang berbeda, dengan menggunakan | Ilmuwan data |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Mengatur variabel lingkungan. | Untuk menjalankan pekerjaan Anda di SageMaker AI, atur variabel lingkungan berikut, berikan Akun AWS ID Anda Wilayah AWS dan Anda:
| AWS Umum |
Buat dan dorong gambar Docker. | Untuk membuat image Docker dan mendorongnya ke repositori Amazon ECR, jalankan perintah berikut:
Tugas ini mengasumsikan bahwa Anda memiliki kredensi yang valid di lingkungan Anda. Gambar Docker didorong ke repositori Amazon ECR yang ditentukan dalam variabel lingkungan di tugas sebelumnya dan digunakan untuk mengaktifkan wadah SageMaker AI tempat pekerjaan pelatihan akan berjalan. | Insinyur ML, AWS Umum |
Salin data input ke Amazon S3. | Pekerjaan pelatihan SageMaker AI perlu mengambil data input. Untuk menyalin data input ke bucket Amazon S3 untuk data, jalankan perintah berikut:
| Insinyur data, AWS Umum |
Kirim pekerjaan pelatihan SageMaker AI. | Untuk menyederhanakan eksekusi skrip Anda, tentukan parameter konfigurasi default dalam file.
| AWS Umum, insinyur ML, Ilmuwan data |
Jalankan tuning hyperparameter SageMaker AI. | Menjalankan tuning hyperparameter SageMaker AI mirip dengan mengirimkan pekerjaan pelatihan AII. SageMaker Namun, skrip eksekusi berbeda dalam beberapa hal penting seperti yang Anda lihat di file start_sagemaker_hpo_job.py Untuk memulai pekerjaan optimasi hyperparameter (HPO), jalankan perintah berikut:
| Ilmuwan data |
Pemecahan Masalah
| Isu | Solusi |
|---|---|
Token kadaluwarsa | Ekspor AWS kredensi baru. |
Kurangnya izin IAM | Pastikan Anda mengekspor kredensional peran IAM yang memiliki semua izin IAM yang diperlukan untuk menerapkan CloudFormation template dan untuk memulai pekerjaan pelatihan AI. SageMaker |
Sumber daya terkait
Latih model dengan Amazon SageMaker AI (AWS dokumentasi)
Informasi tambahan
Pola ini membahas tantangan berikut:
Konsistensi dari pengembangan lokal hingga penerapan skala besar — Dengan pola ini, pengembang dapat menggunakan alur kerja yang sama, terlepas dari apakah mereka menggunakan skrip Python lokal, menjalankan kontainer Docker lokal, melakukan eksperimen besar pada AI, atau menerapkan dalam produksi pada SageMaker AI. SageMaker Konsistensi ini penting karena alasan berikut:
Iterasi lebih cepat — Ini memungkinkan eksperimen lokal yang cepat tanpa perlu penyesuaian besar saat meningkatkan skala.
Tidak ada refactoring - Transisi ke eksperimen yang lebih besar pada SageMaker AI mulus, tidak memerlukan perombakan pengaturan yang ada.
Peningkatan berkelanjutan - Mengembangkan fitur baru dan terus meningkatkan algoritme sangatlah mudah karena kodenya tetap sama di seluruh lingkungan.
Manajemen konfigurasi — Pola ini menggunakan Hydra
Parameter didefinisikan dalam file konfigurasi, terpisah dari kode.
Set parameter yang berbeda dapat ditukar atau digabungkan dengan mudah.
Pelacakan eksperimen disederhanakan karena setiap konfigurasi run dicatat secara otomatis.
Eksperimen cloud dapat menggunakan struktur konfigurasi yang sama dengan proses lokal, memastikan konsistensi.
Dengan Hydra, Anda dapat mengelola konfigurasi secara efektif, mengaktifkan fitur-fitur berikut:
Membagi konfigurasi - Pecahkan konfigurasi proyek Anda menjadi potongan-potongan yang lebih kecil dan dapat dikelola yang dapat dimodifikasi secara independen. Pendekatan ini membuatnya lebih mudah untuk menangani proyek yang kompleks.
Sesuaikan default dengan mudah — Ubah konfigurasi dasar Anda dengan cepat, sehingga lebih mudah untuk menguji ide-ide baru.
Sejajarkan input CLI dan file konfigurasi - Gabungkan input baris perintah dengan file konfigurasi Anda dengan lancar. Pendekatan ini mengurangi kekacauan dan kebingungan, membuat proyek Anda lebih mudah dikelola dari waktu ke waktu.