Amazon SageMaker dan Titik akhir inferensi SageMaker memberikan kemampuan untuk melatih dan menerapkan beban kerja AI dan machine learning (ML) Anda. Dengan titik akhir inferensi, Anda dapat menerapkan model Anda untuk inferensi waktu nyata atau batch. Titik akhir mendukung berbagai jenis model ML yang dihosting menggunakan Kontainer Pembelajaran Jauh AWS atau wadah Anda sendiri dengan algoritme AI/ML khusus. Saat Anda meluncurkan titik akhir inferensi SageMaker dengan beberapa instans, SageMaker mendistribusikan instans di beberapa Availability Zone (dalam satu Wilayah) untuk ketersediaan tinggi.
Namun, dalam beberapa kasus, untuk memastikan latensi serendah mungkin bagi pelanggan di wilayah geografis yang beragam, Anda mungkin memerlukan penerapan titik akhir inferensi di beberapa Wilayah. Penyebaran titik akhir SageMaker multi-Regional serta aplikasi dan komponen infrastruktur terkait lainnya juga dapat menjadi bagian dari strategi pemulihan bencana untuk beban kerja misi-kritis Anda yang bertujuan untuk mengurangi risiko kegagalan Regional.
Proyek SageMaker mengimplementasikan satu set templat MLOps yang dibuat sebelumnya yang dapat membantu mengelola penerapan titik akhir. Dalam postingan ini, kami menunjukkan bagaimana Anda dapat memperluas pipeline Proyek SageMaker MLOps untuk mengaktifkan penerapan multi-Regional dari titik akhir inferensi AI/ML Anda.
Ikhtisar solusi
SageMaker Projects menerapkan baik pelatihan maupun penerapan pipeline MLOP; Anda dapat menggunakan ini untuk melatih model dan menerapkannya menggunakan titik akhir inferensi. Untuk mengurangi kompleksitas dan biaya solusi multi-Wilayah, kami berasumsi bahwa Anda melatih model dalam satu Wilayah dan menerapkan titik akhir inferensi di dua atau lebih Wilayah.
Posting ini menyajikan solusi yang sedikit memodifikasi template proyek SageMaker untuk mendukung penyebaran multi-Wilayah. Untuk mengilustrasikan perubahan dengan lebih baik, gambar berikut menampilkan pipeline MLOps standar yang dibuat secara otomatis oleh SageMaker (Langkah 1-5) serta perubahan yang diperlukan untuk memperluasnya ke Wilayah sekunder (Langkah 6-11).
Template Proyek SageMaker secara otomatis menerapkan solusi MLOps boilerplate, yang mencakup komponen berikut:
- Jembatan Acara Amazon monitor Komitmen Kode AWS repositori untuk perubahan dan mulai menjalankan Pipa Kode AWS jika komit kode terdeteksi.
- Jika ada perubahan kode, Pembuatan Kode AWS mengatur pelatihan model menggunakan tugas pelatihan SageMaker.
- Setelah pekerjaan pelatihan selesai, Registri model SageMaker register dan katalog model terlatih.
- Untuk mempersiapkan tahap penerapan, CodeBuild memperluas default Formasi AWS Cloud file konfigurasi template dengan parameter model yang disetujui dari registri model.
- Terakhir, CodePipeline menjalankan template CloudFormation untuk menerapkan model yang disetujui ke titik akhir inferensi pementasan dan produksi.
Langkah-langkah tambahan berikut memodifikasi template Proyek MLOps untuk mengaktifkan penerapan model AI/ML di Wilayah sekunder:
- Sebuah replika dari Layanan Penyimpanan Sederhana Amazon Bucket (Amazon S3) di Wilayah utama menyimpan artefak model diperlukan di Wilayah sekunder.
- Template CodePipeline diperluas dengan lebih banyak tahapan untuk menjalankan penerapan lintas Wilayah dari model yang disetujui.
- Sebagai bagian dari proses penerapan lintas Wilayah, template CodePipeline menggunakan template CloudFormation baru untuk menerapkan titik akhir inferensi di Wilayah sekunder. Template CloudFormation menyebarkan model dari artefak model dari bucket replika S3 yang dibuat pada Langkah 6.
9โ11 secara opsional, buat sumber daya di Amazon Route 53, Gerbang API Amazon, dan AWS Lambda untuk merutekan lalu lintas aplikasi ke titik akhir inferensi di Wilayah sekunder.
Prasyarat
Buat proyek SageMaker di Wilayah utama Anda (us-timur-2 di pos ini). Selesaikan langkah-langkah di Membangun, mengotomatiskan, mengelola, dan menskalakan alur kerja ML menggunakan Amazon SageMaker Pipelines sampai bagian Mengubah kode sampel untuk kasus penggunaan khusus.
Perbarui saluran Anda di CodePipeline
Di bagian ini, kita membahas cara menambahkan persetujuan CodePipeline manual dan tahap penerapan model lintas-Wilayah ke saluran yang ada yang dibuat untuk Anda oleh SageMaker.
- Pada konsol CodePipeline di Wilayah utama Anda, temukan dan pilih saluran yang berisi nama proyek Anda dan diakhiri dengan penerapan. Pipeline ini telah dibuat untuk Anda oleh SageMaker Projects. Anda memodifikasi pipeline ini untuk menambahkan tahapan penerapan titik akhir AI/ML untuk Region sekunder.
- Pilih Edit.
- Pilih Tambahkan panggung.
- Untuk Nama panggung, Masuk
SecondaryRegionDeployment
. - Pilih Tambahkan panggung.
- Dalam majalah
SecondaryRegionDeployment
panggung, pilih Tambahkan grup tindakan.Dalam grup tindakan ini, Anda menambahkan langkah persetujuan manual untuk penyebaran model di Wilayah sekunder. - Untuk Nama tindakan, Masuk
ManualApprovaltoDeploytoSecondaryRegion
. - Untuk Penyedia tindakan, pilih Persetujuan manual.
- Biarkan semua pengaturan lainnya pada default dan pilih Done.
- Dalam majalah
SecondaryRegionDeployment
panggung, pilih Tambahkan grup tindakan (setelahManualApprovaltoDeploytoSecondaryRegion
).Dalam grup tindakan ini, Anda menambahkan langkah penerapan AWS CloudFormation lintas Wilayah. Anda menentukan nama artefak build yang Anda buat nanti di posting ini. - Untuk Nama tindakan, Masuk
DeploytoSecondaryRegion
. - Untuk Penyedia tindakan, pilih Formasi AWS Cloud.
- Untuk Daerah, masukkan nama Wilayah sekunder Anda (misalnya,
us-west-2
). - Untuk Artefak masukan, Masuk
BuildArtifact
. - Untuk Mode Aksi, Masuk
CreateorUpdateStack
. - Untuk Nama Tumpukan, Masuk
DeploytoSecondaryRegion
. - Bawah Contoh, Untuk Nama Artefak, pilih
BuildArtifact
. - Bawah Contoh, Untuk File Name, Masuk
template-export-secondary-region.yml
. - Mengubah Gunakan File Konfigurasi pada.
- Bawah Contoh, Untuk Nama Artefak, pilih
BuildArtifact
. - Bawah Contoh, Untuk File Name, Masuk
secondary-region-config-export.json
. - Bawah Kemampuan, pilih
CAPABILITY_NAMED_IAM
. - Untuk Peran, pilih
AmazonSageMakerServiceCatalogProductsUseRole
dibuat oleh Proyek SageMaker. - Pilih Done.
- Pilih Save.
- Jika Simpan perubahan saluran dialog muncul, pilih Save lagi.
Ubah peran IAM
Kami perlu menambahkan izin tambahan ke Identitas AWS dan Manajemen Akses (IAM) AmazonSageMakerServiceCatalogProductsUseRole
diciptakan oleh Katalog Layanan AWS untuk mengaktifkan akses bucket CodePipeline dan S3 untuk penerapan lintas Wilayah.
- Di konsol IAM, pilih Peran di panel navigasi.
- Cari dan pilih
AmazonSageMakerServiceCatalogProductsUseRole
. - Pilih kebijakan IAM di bawah Nama kebijakan:
AmazonSageMakerServiceCatalogProductsUseRole-XXXXXXXXX
. - Pilih Edit Kebijakan lalu JSON.
- Ubah izin AWS CloudFormation untuk memungkinkan CodePipeline menyinkronkan bucket S3 di Wilayah sekunder. Anda dapat mengganti kebijakan IAM yang ada dengan yang diperbarui dari berikut ini GitHub repo (lihat baris:16-18, 198, 213)
- Pilih Tinjau kebijakan.
- Pilih Simpan perubahan.
Tambahkan template penerapan untuk Wilayah sekunder
Untuk memutar titik akhir inferensi di Wilayah sekunder, SecondaryRegionDeployment
stage membutuhkan template CloudFormation (untuk endpoint-config-template-secondary-region.yml
) dan file konfigurasi (secondary-region-config.json
).
Template CloudFormation dikonfigurasi sepenuhnya melalui parameter; Anda dapat memodifikasinya lebih lanjut agar sesuai dengan kebutuhan Anda. Demikian pula, Anda dapat menggunakan file konfigurasi untuk menentukan parameter untuk konfigurasi peluncuran titik akhir, seperti jenis instans dan jumlah instans:
Untuk menambahkan file-file ini ke proyek Anda, unduh dari tautan yang disediakan dan unggah ke Studio Amazon SageMaker di Wilayah primer. Di Studio, pilih Browser File dan kemudian folder yang berisi nama proyek Anda dan diakhiri dengan modeldeploy
.
Unggah file-file ini ke folder root repositori penerapan dengan memilih ikon unggah. Pastikan file berada di folder root seperti yang ditunjukkan pada tangkapan layar berikut.
Ubah file build Python
Selanjutnya, kita perlu menyesuaikan penyebaran build.py
file untuk mengaktifkan penyebaran titik akhir SageMaker di Wilayah sekunder untuk melakukan hal berikut:
- Ambil lokasi artefak model dan Registry Kontainer Elastis Amazon (Amazon ECR) URI untuk gambar model di Wilayah sekunder
- Siapkan file parameter yang digunakan untuk meneruskan argumen khusus model ke template CloudFormation yang menerapkan model di Region sekunder
Anda dapat mengunduh yang diperbarui build.py
file dan ganti yang sudah ada di folder Anda. Di Studio, pilih Browser File dan kemudian folder yang berisi nama proyek Anda dan diakhiri dengan modeldeploy
. Temukan file build.py dan ganti dengan yang Anda unduh.
Template CloudFormation menggunakan artefak model yang disimpan dalam bucket S3 dan jalur gambar Amazon ECR untuk menerapkan titik akhir inferensi di Wilayah sekunder. Ini berbeda dengan penerapan dari model registri di Wilayah utama, karena Anda tidak perlu memiliki model registri di Wilayah sekunder.
Ubah file buildspec
buildspec.yml
berisi instruksi yang dijalankan oleh CodeBuild. Kami memodifikasi file ini untuk melakukan hal berikut:
- Instal perpustakaan SageMaker Python yang diperlukan untuk mendukung kode yang dijalankan
- Lewati parameter โwilayah sekunder dan khusus model untuk
build.py
- Tambahkan sinkronisasi konten bucket S3 dari Wilayah primer ke sekunder
- Ekspor template Region CloudFormation sekunder dan file parameter terkait sebagai artefak dari langkah CodeBuild
Buka buildspec.yml
file dari folder model deploy dan buat modifikasi yang disorot seperti yang ditunjukkan pada tangkapan layar berikut.
Atau, Anda dapat mengunduh yang berikut ini buildspec.yml
file untuk menggantikan file default.
Tambahkan variabel lingkungan CodeBuild
Pada langkah ini, Anda menambahkan parameter konfigurasi yang diperlukan untuk CodeBuild untuk membuat file konfigurasi penyebaran model di Wilayah sekunder.
- Di konsol CodeBuild di Wilayah utama, temukan proyek yang berisi nama proyek Anda dan diakhiri dengan penerapan. Proyek ini telah dibuat untuk Anda oleh Proyek SageMaker.
- Pilih proyek dan di Edit menu, pilih Lingkungan Hidup.
- Dalam majalah Konfigurasi lanjutan bagian, batalkan pilihan Izinkan AWS CodeBuild untuk mengubah peran layanan ini sehingga dapat digunakan dengan proyek pembangunan ini.
- Tambahkan variabel lingkungan berikut, yang menentukan nama template CloudFormation tambahan, Region sekunder, dan parameter khusus model:
- EXPORT_TEMPLATE_NAME_SECONDARY_REGION - Untuk Nilai, Masuk
template-export-secondary-region.yml
dan untuk Tipe, pilih Teks Biasa. - EXPORT_TEMPLATE_SECONDARY_REGION_CONFIG - Untuk Nilai, Masuk
secondary-region-config-export.json
dan untuk Tipe, pilih Teks Biasa. - AWS_SECONDARY_REGION - Untuk Nilai, masukkan us-west-2 dan untuk Tipe, pilih Teks Biasa.
- KERANGKA - Untuk Nilai, Masuk
xgboost
(ganti dengan kerangka kerja Anda) dan untuk Tipe, pilih Teks Biasa. - MODEL_VERSION - Untuk Nilai, masukkan 1.0-1 (ganti dengan versi model Anda) dan untuk Tipe, pilih Teks Biasa.
- EXPORT_TEMPLATE_NAME_SECONDARY_REGION - Untuk Nilai, Masuk
- Salin nilai dari
ARTIFACT_BUCKET
ke Notepad atau editor teks lainnya. Anda membutuhkan nilai ini di langkah berikutnya. - Pilih Perbarui lingkungan.
Anda memerlukan nilai yang Anda tentukan untuk pelatihan model FRAMEWORK
dan MODEL_VERSION
. Misalnya, untuk menemukan nilai ini untuk model Abalone yang digunakan dalam penerapan boilerplate MLOps, buka Studio dan di Browser File menu, buka folder dengan nama proyek Anda dan diakhiri dengan modelbuild. Navigasi ke pipelines/abalone
dan buka pipeline.py
mengajukan. Pencarian untuk sagemaker.image_uris.retrieve
dan salin nilai yang relevan.
Buat ember replika S3 di Wilayah sekunder
Kita perlu membuat ember S3 untuk menampung artefak model di Wilayah sekunder. SageMaker menggunakan bucket ini untuk mendapatkan model versi terbaru untuk menjalankan titik akhir inferensi. Anda hanya perlu melakukan ini satu kali. CodeBuild secara otomatis menyinkronkan konten bucket di Region utama ke bucket replikasi dengan setiap pipeline yang dijalankan.
- Pada konsol Amazon S3, pilih Buat ember.
- Untuk Nama ember, masukkan nilai
ARTEFACT_BUCKET
disalin pada langkah sebelumnya dan tambahkan-replica
sampai akhir (misalnya,sagemaker-project-X-XXXXXXXX-replica
. - Untuk Wilayah AWS, masukkan Wilayah sekunder Anda (
us-west-2
). - Biarkan semua nilai lainnya pada default dan pilih Buat ember.
Menyetujui model untuk penerapan
Tahap penyebaran pipa memerlukan model yang disetujui untuk memulai. Ini diperlukan untuk penerapan di Wilayah utama.
- Di Studio (Wilayah utama), pilih Sumber daya SageMaker di panel navigasi.
- Untuk Pilih sumber daya untuk dilihat, pilih Registri model.
- Pilih nama grup model yang dimulai dengan nama proyek Anda.
- Di panel kanan, periksa versi model, panggung, dan status.
- Jika status menunjukkan tertunda, pilih versi model lalu pilih Memperbaharui status.
- Ubah status menjadi Disetujui, Lalu pilih Memperbaharui status.
Terapkan dan verifikasi perubahan
Semua perubahan yang diperlukan untuk penerapan multi-Wilayah titik akhir inferensi SageMaker Anda sekarang telah selesai dan Anda dapat memulai proses penerapan.
- Di Studio, simpan semua file yang Anda edit, pilih pergi, dan pilih repositori yang berisi nama proyek Anda dan diakhiri dengan deploy.
- Pilih tanda plus untuk membuat perubahan.
- Bawah Berubah, tambahkan
build.py
danbuildspec.yml
. - Bawah Tidak terlacak, tambahkan
endpoint-config-template-secondary-region.yml
dansecondary-region-config.json
. - Masukkan komentar di Kesimpulan lapangan dan pilih Melakukan.
- Dorong perubahan ke repositori dengan memilih Dorong.
Mendorong perubahan ini ke repositori CodeCommit memicu proses pipeline baru, karena event EventBridge memantau komitmen yang didorong. Setelah beberapa saat, Anda dapat memantau proses dengan menavigasi ke pipeline di konsol CodePipeline.
Pastikan untuk memberikan persetujuan manual untuk penerapan ke produksi dan Wilayah sekunder.
Anda dapat memverifikasi bahwa titik akhir Wilayah sekunder dibuat di konsol SageMaker, dengan memilih Menu Utama di panel navigasi dan mengonfirmasi status titik akhir di Aktivitas terkini.
Tambahkan API Gateway dan Route 53 (Opsional)
Anda dapat secara opsional mengikuti petunjuk di Panggil titik akhir model Amazon SageMaker menggunakan Amazon API Gateway dan AWS Lambda untuk mengekspos titik akhir inferensi SageMaker di Wilayah sekunder sebagai API menggunakan API Gateway dan Lambda.
Membersihkan
Untuk menghapus proyek SageMaker, lihat Hapus Proyek MLOps menggunakan Amazon SageMaker Studio. Untuk memastikan titik akhir inferensi sekunder dihancurkan, buka konsol AWS CloudFormation dan hapus tumpukan terkait di Wilayah primer dan sekunder Anda; ini menghancurkan titik akhir inferensi SageMaker.
Kesimpulan
Dalam posting ini, kami menunjukkan bagaimana spesialis MLOps dapat memodifikasi template MLOps yang telah dikonfigurasikan sebelumnya untuk kasus penggunaan penerapan multi-Wilayah mereka sendiri, seperti menerapkan beban kerja di beberapa geografi atau sebagai bagian dari penerapan strategi pemulihan bencana multi-Regional. Dengan pendekatan penerapan ini, Anda tidak perlu mengonfigurasi layanan di Region sekunder dan dapat menggunakan kembali penyiapan CodePipeline dan CloudBuild di Region utama untuk penerapan lintas-Regional. Selain itu, Anda dapat menghemat biaya dengan melanjutkan pelatihan model Anda di Wilayah utama sambil memanfaatkan inferensi SageMaker di beberapa Wilayah untuk menskalakan penerapan AI/ML Anda secara global.
Beri tahu kami tanggapan Anda di bagian komentar.
Tentang Penulis
Mehran Najafi, PhD, adalah Arsitek Solusi Senior untuk AWS yang berfokus pada solusi AI/ML dan SaaS pada Skala.
Steven Alyekhin adalah Arsitek Solusi Senior untuk AWS yang berfokus pada MLOps pada Skala.
- Lanjutan (300)
- AI
- ai seni
- generator seni ai
- punya robot
- Amazon SageMaker
- kecerdasan buatan
- sertifikasi kecerdasan buatan
- kecerdasan buatan dalam perbankan
- robot kecerdasan buatan
- robot kecerdasan buatan
- perangkat lunak kecerdasan buatan
- Pembelajaran Mesin AWS
- blockchain
- konferensi blockchain
- kecerdasan
- kecerdasan buatan percakapan
- konferensi kripto
- dall's
- belajar mendalam
- google itu
- Tingkat Pembelajaran
- Mesin belajar
- plato
- plato ai
- Kecerdasan Data Plato
- Permainan Plato
- Data Plato
- permainan plato
- skala ai
- sintaksis
- Petunjuk Teknis
- zephyrnet.dll