Penerapan Bergulir - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Penerapan Bergulir

Saat memperbarui titik akhir, Anda dapat menentukan penerapan bergulir untuk secara bertahap mengalihkan lalu lintas dari armada lama ke armada baru. Anda dapat mengontrol ukuran langkah perpindahan lalu lintas, serta menentukan periode evaluasi untuk memantau instans baru untuk masalah sebelum menghentikan instance dari armada lama. Dengan penerapan bergulir, instance pada armada lama dibersihkan setelah setiap pergeseran lalu lintas ke armada baru, mengurangi jumlah instance tambahan yang diperlukan untuk memperbarui titik akhir Anda. Ini berguna terutama untuk contoh yang dipercepat yang banyak diminati.

Penerapan bergulir secara bertahap menggantikan penerapan versi model Anda sebelumnya dengan versi baru dengan memperbarui titik akhir Anda dalam ukuran batch yang dapat dikonfigurasi. Perilaku pergeseran lalu lintas dari penerapan bergulir mirip dengan mode perpindahan lalu lintas linier dalam penerapan biru/hijau, tetapi penerapan bergulir memberi Anda manfaat dari persyaratan kapasitas yang berkurang jika dibandingkan dengan penerapan biru/hijau. Dengan penerapan bergulir, lebih sedikit instans yang aktif pada satu waktu, dan Anda memiliki kontrol yang lebih terperinci atas berapa banyak instance yang ingin Anda perbarui di armada baru. Anda harus mempertimbangkan untuk menggunakan penerapan bergulir alih-alih penerapan biru/hijau jika Anda memiliki model besar atau titik akhir besar dengan banyak instance.

Daftar berikut menjelaskan fitur utama penerapan bergulir di Amazon: SageMaker

  • Periode memanggang.Periode pemanggangan adalah jumlah waktu yang ditetapkan untuk memantau armada baru sebelum melanjutkan ke tahap penyebaran berikutnya. Jika salah satu alarm yang telah ditentukan sebelumnya tersandung selama periode pemanggangan apa pun, maka semua lalu lintas titik akhir kembali ke armada lama. Periode memanggang membantu Anda membangun kepercayaan pada pembaruan Anda sebelum membuat pergeseran lalu lintas permanen.

  • Ukuran batch bergulir. Anda memiliki kontrol granular atas ukuran setiap batch untuk pergeseran lalu lintas, atau jumlah instance yang ingin Anda perbarui di setiap batch. Jumlah ini dapat berkisar 5-50% dari ukuran armada Anda. Anda dapat menentukan ukuran batch sebagai sejumlah instance atau sebagai persentase keseluruhan armada Anda.

  • Rollback otomatis.Anda dapat menentukan CloudWatch alarm Amazon yang SageMaker digunakan untuk memantau armada baru. Jika masalah dengan kode yang diperbarui tersandung salah satu alarm, SageMaker mulailah rollback otomatis ke armada lama untuk menjaga ketersediaan, sehingga meminimalkan risiko.

catatan

Jika titik akhir Anda menggunakan salah satu fitur yang tercantum di halaman Pengecualian, Anda tidak dapat menggunakan penerapan bergulir.

Cara kerjanya

Selama penyebaran bergulir, SageMaker menyediakan infrastruktur untuk mengalihkan lalu lintas dari armada lama ke armada baru tanpa harus menyediakan semua instance baru sekaligus. SageMaker menggunakan langkah-langkah berikut untuk mengalihkan lalu lintas:

  1. SageMaker ketentuan batch pertama contoh dalam armada baru.

  2. Sebagian lalu lintas dialihkan dari instance lama ke batch pertama instance baru.

  3. Setelah periode pemanggangan, jika tidak ada CloudWatch alarm Amazon yang tersandung, maka SageMaker bersihkan sejumlah contoh lama.

  4. SageMaker terus menyediakan, menggeser, dan membersihkan instance dalam batch hingga penerapan selesai.

Jika alarm tersandung selama salah satu periode memanggang, lalu lintas digulung kembali ke armada lama dalam batch dengan ukuran yang Anda tentukan. Atau, Anda dapat menentukan penyebaran bergulir untuk menggeser 100% lalu lintas kembali ke armada lama jika alarm tersandung.

Diagram berikut menunjukkan perkembangan penerapan bergulir yang berhasil, seperti yang dijelaskan pada langkah-langkah sebelumnya.

Langkah-langkah lalu lintas penyebaran bergulir berhasil bergeser dari yang lama ke armada baru.

Untuk membuat penerapan bergulir, Anda hanya perlu menentukan konfigurasi penerapan yang Anda inginkan. Kemudian SageMaker menangani penyediaan instance baru, menghentikan instance lama, dan mengalihkan lalu lintas untuk Anda. Anda dapat membuat dan mengelola penyebaran Anda melalui AWS Command Line Interface perintah yang ada UpdateEndpointdan CreateEndpoint SageMaker APIdan.

Prasyarat

Sebelum menyiapkan penerapan bergulir, Anda harus membuat CloudWatch alarm Amazon untuk menonton metrik dari titik akhir Anda. Jika ada alarm yang tersandung selama periode memanggang, maka lalu lintas mulai bergulir kembali ke armada lama Anda. Untuk mempelajari cara mengatur CloudWatch alarm pada titik akhir, lihat halaman prasyarat Auto-Rollback Configuration and Monitoring. Untuk mempelajari lebih lanjut tentang CloudWatch alarm, lihat Menggunakan CloudWatch alarm Amazon di CloudWatch Panduan Pengguna Amazon.

Juga, tinjau halaman Pengecualian untuk memastikan bahwa titik akhir Anda memenuhi persyaratan untuk penerapan bergulir.

Tentukan ukuran batch bergulir

Sebelum memperbarui titik akhir Anda, tentukan ukuran batch yang ingin Anda gunakan untuk memindahkan lalu lintas secara bertahap ke armada baru.

Untuk penerapan bergulir, Anda dapat menentukan ukuran batch yang 5-50% dari kapasitas armada Anda. Jika Anda memilih ukuran batch yang besar, penerapan selesai lebih cepat. Namun, perlu diingat bahwa titik akhir membutuhkan lebih banyak kapasitas saat memperbarui, kira-kira overhead ukuran batch. Jika Anda memilih ukuran batch yang lebih kecil, penerapan akan memakan waktu lebih lama, tetapi Anda menggunakan lebih sedikit kapasitas selama penerapan.

Konfigurasikan penerapan bergulir

Setelah Anda siap untuk penerapan dan telah menyiapkan CloudWatch alarm untuk titik akhir Anda, Anda dapat menggunakan SageMaker UpdateEndpointAPIatau perintah update-endpoint di untuk memulai penerapan. AWS Command Line Interface

Cara memperbarui titik akhir

Contoh berikut menunjukkan bagaimana Anda dapat memperbarui titik akhir Anda dengan penerapan bergulir menggunakan metode update_endpoint dari klien Boto3. SageMaker

Untuk mengonfigurasi penerapan bergulir, gunakan contoh dan bidang berikut:

  • UntukEndpointName, gunakan nama titik akhir yang ada yang ingin Anda perbarui.

  • UntukEndpointConfigName, gunakan nama konfigurasi titik akhir yang ingin Anda gunakan.

  • Di AutoRollbackConfiguration objek, di dalam Alarms bidang, Anda dapat menambahkan CloudWatch alarm Anda dengan nama. Buat satu AlarmName: <your-cw-alarm> entri untuk setiap alarm yang ingin Anda gunakan.

  • Di bawahDeploymentConfig, untuk RollingUpdatePolicy objek, tentukan bidang berikut:

    • MaximumExecutionTimeoutInSeconds— Batas waktu untuk total penyebaran. Melebihi batas ini menyebabkan batas waktu. Nilai maksimum yang dapat Anda tentukan untuk bidang ini adalah 28800 detik, atau 8 jam.

    • WaitIntervalInSeconds— Lamanya periode pemanggangan, di mana SageMaker memantau alarm untuk setiap batch pada armada baru.

    • MaximumBatchSize— Tentukan Type batch yang ingin Anda gunakan (baik jumlah instance atau persentase keseluruhan armada Anda) danValue, atau ukuran setiap batch.

    • RollbackMaximumBatchSize— Gunakan objek ini untuk menentukan strategi rollback jika alarm tersandung. Tentukan Type batch yang ingin Anda gunakan (baik jumlah instans atau persentase keseluruhan armada Anda)Value, dan, atau ukuran setiap batch. Jika Anda tidak menentukan bidang ini, atau jika Anda menetapkan nilainya menjadi 100% dari titik akhir Anda, SageMaker gunakan strategi rollback biru/hijau dan memutar semua lalu lintas kembali ke armada lama saat alarm tersandung.

import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", DeploymentConfig={ "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>" }, ] }, "RollingUpdatePolicy": { "MaximumExecutionTimeoutInSeconds": number, "WaitIntervalInSeconds": number, "MaximumBatchSize": { "Type": "INSTANCE_COUNT" | "CAPACITY_PERCENTAGE" (default), "Value": number }, "RollbackMaximumBatchSize": { "Type": "INSTANCE_COUNT" | "CAPACITY_PERCENTAGE" (default), "Value": number }, } } )

Setelah memperbarui titik akhir Anda, Anda mungkin ingin memeriksa status penerapan bergulir Anda dan memeriksa kesehatan titik akhir Anda. Anda dapat meninjau status titik akhir Anda di SageMaker konsol, atau Anda dapat meninjau status titik akhir Anda dengan menggunakan. DescribeEndpointAPI

Di VariantStatus objek yang dikembalikan oleh DescribeEndpointAPI, Status bidang memberi tahu Anda penyebaran atau status operasional titik akhir Anda saat ini. Untuk informasi lebih lanjut tentang kemungkinan status dan apa artinya, lihat ProductionVariantStatus.

Jika Anda mencoba melakukan penerapan bergulir dan status endpoint Anda adalahUpdateRollbackFailed, lihat bagian berikut untuk bantuan pemecahan masalah.

Penanganan kegagalan

Jika penerapan bergulir Anda gagal dan rollback otomatis gagal juga, titik akhir Anda dapat dibiarkan dengan status. UpdateRollbackFailed Status ini berarti bahwa konfigurasi titik akhir yang berbeda diterapkan ke instance di belakang titik akhir Anda, dan titik akhir Anda dalam layanan dengan campuran konfigurasi titik akhir lama dan baru.

Anda dapat membuat panggilan lain UpdateEndpointAPIuntuk mengembalikan titik akhir Anda ke keadaan sehat. Tentukan konfigurasi titik akhir dan konfigurasi penerapan yang Anda inginkan (baik sebagai penerapan bergulir, penerapan biru/hijau, atau tidak keduanya) untuk memperbarui titik akhir Anda.

Anda dapat memanggil DescribeEndpointAPIuntuk memeriksa kesehatan titik akhir Anda lagi, yang dikembalikan dalam VariantStatus objek sebagai Status bidang. Jika pembaruan Anda berhasil, titik akhir Anda Status kembali keInService.