Aktifkan CI/CD titik akhir Amazon SageMaker multi-Wilayah PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Aktifkan CI/CD dari titik akhir Amazon SageMaker multi-Wilayah

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:

  1. Jembatan Acara Amazon monitor Komitmen Kode AWS repositori untuk perubahan dan mulai menjalankan Pipa Kode AWS jika komit kode terdeteksi.
  2. Jika ada perubahan kode, Pembuatan Kode AWS mengatur pelatihan model menggunakan tugas pelatihan SageMaker.
  3. Setelah pekerjaan pelatihan selesai, Registri model SageMaker register dan katalog model terlatih.
  4. Untuk mempersiapkan tahap penerapan, CodeBuild memperluas default Formasi AWS Cloud file konfigurasi template dengan parameter model yang disetujui dari registri model.
  5. 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:

  1. Sebuah replika dari Layanan Penyimpanan Sederhana Amazon Bucket (Amazon S3) di Wilayah utama menyimpan artefak model diperlukan di Wilayah sekunder.
  2. Template CodePipeline diperluas dengan lebih banyak tahapan untuk menjalankan penerapan lintas Wilayah dari model yang disetujui.
  3. 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.

  1. 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.
  2. Pilih Edit.
  3. Pilih Tambahkan panggung.
  4. Untuk Nama panggung, Masuk SecondaryRegionDeployment.
  5. Pilih Tambahkan panggung.
  6. Dalam majalah SecondaryRegionDeployment panggung, pilih Tambahkan grup tindakan.Dalam grup tindakan ini, Anda menambahkan langkah persetujuan manual untuk penyebaran model di Wilayah sekunder.
  7. Untuk Nama tindakan, Masuk ManualApprovaltoDeploytoSecondaryRegion.
  8. Untuk Penyedia tindakan, pilih Persetujuan manual.
  9. Biarkan semua pengaturan lainnya pada default dan pilih Done.
  10. Dalam majalah SecondaryRegionDeployment panggung, pilih Tambahkan grup tindakan (setelah ManualApprovaltoDeploytoSecondaryRegion).Dalam grup tindakan ini, Anda menambahkan langkah penerapan AWS CloudFormation lintas Wilayah. Anda menentukan nama artefak build yang Anda buat nanti di posting ini.
  11. Untuk Nama tindakan, Masuk DeploytoSecondaryRegion.
  12. Untuk Penyedia tindakan, pilih Formasi AWS Cloud.
  13. Untuk Daerah, masukkan nama Wilayah sekunder Anda (misalnya, us-west-2).
  14. Untuk Artefak masukan, Masuk BuildArtifact.
  15. Untuk Mode Aksi, Masuk CreateorUpdateStack.
  16. Untuk Nama Tumpukan, Masuk DeploytoSecondaryRegion.
  17. Bawah Contoh, Untuk Nama Artefak, pilih BuildArtifact.
  18. Bawah Contoh, Untuk File Name, Masuk template-export-secondary-region.yml.
  19. Mengubah Gunakan File Konfigurasi pada.
  20. Bawah Contoh, Untuk Nama Artefak, pilih BuildArtifact.
  21. Bawah Contoh, Untuk File Name, Masuk secondary-region-config-export.json.
  22. Bawah Kemampuan, pilih CAPABILITY_NAMED_IAM.
  23. Untuk Peran, pilih AmazonSageMakerServiceCatalogProductsUseRole dibuat oleh Proyek SageMaker.
  24. Pilih Done.
  25. Pilih Save.
  26. 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.

  1. Di konsol IAM, pilih Peran di panel navigasi.
  2. Cari dan pilih AmazonSageMakerServiceCatalogProductsUseRole.
  3. Pilih kebijakan IAM di bawah Nama kebijakan: AmazonSageMakerServiceCatalogProductsUseRole-XXXXXXXXX.
  4. Pilih Edit Kebijakan lalu JSON.
  5. 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)
  6. Pilih Tinjau kebijakan.
  7. 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:

{
  "Parameters": {
    "StageName": "secondary-prod",
    "EndpointInstanceCount": "1",
    "EndpointInstanceType": "ml.m5.large",
    "SamplingPercentage": "100",
    "EnableDataCapture": "true"
  }

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.

Tangkapan layar file konfigurasi

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.

Tangkapan layar parameter lingkungan primer dan 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.

Tangkapan layar file build yaml

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.

  1. 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.

Tangkapan layar pipa kode

  1. Pilih proyek dan di Edit menu, pilih Lingkungan Hidup.

Tangkapan layar konfigurasi

  1. Dalam majalah Konfigurasi lanjutan bagian, batalkan pilihan Izinkan AWS CodeBuild untuk mengubah peran layanan ini sehingga dapat digunakan dengan proyek pembangunan ini.
  2. Tambahkan variabel lingkungan berikut, yang menentukan nama template CloudFormation tambahan, Region sekunder, dan parameter khusus model:
    1. EXPORT_TEMPLATE_NAME_SECONDARY_REGION - Untuk Nilai, Masuk template-export-secondary-region.yml dan untuk Tipe, pilih Teks Biasa.
    2. EXPORT_TEMPLATE_SECONDARY_REGION_CONFIG - Untuk Nilai, Masuk secondary-region-config-export.json dan untuk Tipe, pilih Teks Biasa.
    3. AWS_SECONDARY_REGION - Untuk Nilai, masukkan us-west-2 dan untuk Tipe, pilih Teks Biasa.
    4. KERANGKA - Untuk Nilai, Masuk xgboost (ganti dengan kerangka kerja Anda) dan untuk Tipe, pilih Teks Biasa.
    5. MODEL_VERSION - Untuk Nilai, masukkan 1.0-1 (ganti dengan versi model Anda) dan untuk Tipe, pilih Teks Biasa.
  3. Salin nilai dari ARTIFACT_BUCKET ke Notepad atau editor teks lainnya. Anda membutuhkan nilai ini di langkah berikutnya.
  4. 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.

Tangkapan layar kerangka kerja ML

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.

  1. Pada konsol Amazon S3, pilih Buat ember.
  2. Untuk Nama ember, masukkan nilai ARTEFACT_BUCKET disalin pada langkah sebelumnya dan tambahkan -replica sampai akhir (misalnya, sagemaker-project-X-XXXXXXXX-replica.
  3. Untuk Wilayah AWS, masukkan Wilayah sekunder Anda (us-west-2).
  4. 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.

  1. Di Studio (Wilayah utama), pilih Sumber daya SageMaker di panel navigasi.
  2. Untuk Pilih sumber daya untuk dilihat, pilih Registri model.
  3. Pilih nama grup model yang dimulai dengan nama proyek Anda.
  4. Di panel kanan, periksa versi model, panggung, dan status.
  5. Jika status menunjukkan tertunda, pilih versi model lalu pilih Memperbaharui status.
  6. 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.

  1. Di Studio, simpan semua file yang Anda edit, pilih pergi, dan pilih repositori yang berisi nama proyek Anda dan diakhiri dengan deploy.
  2. Pilih tanda plus untuk membuat perubahan.
  3. Bawah Berubah, tambahkan build.py dan buildspec.yml.
  4. Bawah Tidak terlacak, tambahkan endpoint-config-template-secondary-region.yml dan secondary-region-config.json.
  5. Masukkan komentar di Kesimpulan lapangan dan pilih Melakukan.
  6. 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.

Tangkapan layar dasbor pembuat bijak

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

Aktifkan CI/CD titik akhir Amazon SageMaker multi-Wilayah PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai. Mehran Najafi, PhD, adalah Arsitek Solusi Senior untuk AWS yang berfokus pada solusi AI/ML dan SaaS pada Skala.

Aktifkan CI/CD titik akhir Amazon SageMaker multi-Wilayah PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Steven Alyekhin adalah Arsitek Solusi Senior untuk AWS yang berfokus pada MLOps pada Skala.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS