Autopilot Amazon SageMaker secara otomatis membuat, melatih, dan menyetel model pembelajaran mesin (ML) terbaik berdasarkan data Anda, sekaligus memungkinkan Anda mempertahankan kontrol dan visibilitas penuh. Autopilot juga dapat menerapkan model terlatih ke titik akhir inferensi real-time secara otomatis.
Jika Anda memiliki beban kerja dengan pola lalu lintas yang tajam atau tidak dapat diprediksi yang dapat mentolerir cold start, menerapkan model ke titik akhir inferensi tanpa server akan lebih hemat biaya.
Inferensi Tanpa Server Amazon SageMaker adalah opsi inferensi yang dibangun khusus untuk beban kerja dengan pola lalu lintas yang tidak dapat diprediksi dan yang dapat mentolerir cold start. Tidak seperti titik akhir inferensi real-time, yang didukung oleh instans komputasi yang berjalan lama, titik akhir tanpa server menyediakan sumber daya sesuai permintaan dengan penskalaan otomatis bawaan. Titik akhir tanpa server menskalakan secara otomatis berdasarkan jumlah permintaan masuk dan menurunkan sumber daya menjadi nol saat tidak ada permintaan masuk, membantu Anda meminimalkan biaya.
Dalam postingan ini, kami menunjukkan cara menerapkan model terlatih Autopilot ke titik akhir inferensi tanpa server menggunakan Pustaka Boto3 untuk Amazon SageMaker.
Mode pelatihan autopilot
Sebelum membuat eksperimen Autopilot, Anda dapat membiarkan Autopilot memilih mode latihan secara otomatis, atau Anda dapat memilih mode latihan secara manual.
Autopilot saat ini mendukung tiga mode pelatihan:
- Mobil โ Berdasarkan ukuran dataset, Autopilot secara otomatis memilih mode ensembling atau HPO. Untuk kumpulan data yang lebih besar dari 100 MB, Autopilot memilih HPO; jika tidak, ia memilih ensembel.
- Ansambling โ Autopilot menggunakan Perekat Otomatis teknik ensembling menggunakan model stacking dan menghasilkan model prediksi yang optimal.
- Optimalisasi hyperparameter (HPO) โ Autopilot menemukan versi terbaik dari sebuah model dengan menyetel hyperparameter menggunakan optimasi Bayesian atau optimasi multi-fidelitas saat menjalankan tugas pelatihan pada kumpulan data Anda. Mode HPO memilih algoritme yang paling relevan dengan kumpulan data Anda dan memilih rentang hyperparameter terbaik untuk menyempurnakan model Anda.
Untuk mempelajari lebih lanjut tentang mode pelatihan Autopilot, lihat Mode pelatihan.
Ikhtisar solusi
Dalam posting ini, kami menggunakan Pemasaran Bank UCI kumpulan data untuk memprediksi apakah klien akan berlangganan deposito berjangka yang ditawarkan oleh bank. Ini adalah jenis masalah klasifikasi biner.
Kami meluncurkan dua pekerjaan Autopilot menggunakan Pustaka Boto3 untuk SageMaker. Pekerjaan pertama menggunakan ensembling sebagai mode pelatihan yang dipilih. Kami kemudian menerapkan model ansambel tunggal yang dihasilkan ke titik akhir tanpa server dan mengirimkan permintaan inferensi ke titik akhir yang dihosting ini.
Pekerjaan kedua menggunakan mode pelatihan HPO. Untuk jenis masalah klasifikasi, Autopilot menghasilkan tiga kontainer inferensi. Kami mengekstrak ketiga wadah inferensi ini dan menerapkannya ke titik akhir tanpa server yang terpisah. Kemudian kami mengirimkan permintaan inferensi ke titik akhir yang dihosting ini.
Untuk informasi selengkapnya tentang jenis masalah regresi dan klasifikasi, lihat Definisi wadah inferensi untuk jenis masalah regresi dan klasifikasi.
Kami juga dapat meluncurkan pekerjaan Autopilot dari Studio Amazon SageMaker UI. Jika Anda meluncurkan tugas dari UI, pastikan untuk mematikan Penyebaran otomatis pilihan dalam Penyebaran dan pengaturan Lanjutan bagian. Jika tidak, Autopilot akan menerapkan kandidat terbaik ke titik akhir waktu nyata.
Prasyarat
Pastikan Anda memiliki Boto3 versi terbaru dan paket SageMaker Python terinstal:
pip install -U boto3 sagemaker
Kami membutuhkan versi paket SageMaker >= 2.110.0
dan versi Boto3 >= boto3-1.24.84.
Luncurkan tugas Autopilot dengan mode ensembling
Untuk meluncurkan tugas Autopilot menggunakan pustaka SageMaker Boto3, kami menggunakan buat_auto_ml_job API. Kami kemudian lewat AutoMLJobConfig
, InputDataConfig
, dan AutoMLJobObjective
sebagai masukan untuk create_auto_ml_job
. Lihat kode berikut:
Autopilot mengembalikan BestCandidate
objek model yang memiliki InferenceContainers
diperlukan untuk menyebarkan model ke titik akhir inferensi. Untuk mendapatkan BestCandidate
untuk pekerjaan sebelumnya, kami menggunakan describe_automl_job
fungsi:
Terapkan model yang dilatih
Kami sekarang menerapkan wadah inferensi sebelumnya ke titik akhir tanpa server. Langkah pertama adalah membuat model dari wadah inferensi, lalu membuat konfigurasi titik akhir tempat kami menentukan MemorySizeInMB
dan MaxConcurrency
nilai untuk titik akhir tanpa server bersama dengan nama model. Terakhir, kami membuat titik akhir dengan konfigurasi titik akhir yang dibuat di atas.
Kami sarankan memilih Anda ukuran memori titik akhir sesuai dengan ukuran model Anda. Ukuran memori setidaknya harus sebesar ukuran model Anda. Titik akhir tanpa server Anda memiliki ukuran RAM minimum 1024 MB (1 GB), dan ukuran RAM maksimum yang dapat Anda pilih adalah 6144 MB (6 GB).
Ukuran memori yang dapat Anda pilih adalah 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB, atau 6144 MB.
Untuk membantu menentukan apakah titik akhir tanpa server merupakan opsi penerapan yang tepat dari perspektif biaya dan kinerja, sebaiknya Anda merujuk ke Perangkat Pembandingan Inferensi Tanpa Server SageMaker, yang menguji konfigurasi titik akhir yang berbeda dan membandingkan yang paling optimal dengan instans hosting waktu nyata yang sebanding.
Perhatikan bahwa titik akhir tanpa server hanya menerima SingleModel
untuk wadah inferensi. Autopilot dalam mode ensembling menghasilkan satu model, sehingga kami dapat menerapkan wadah model ini seperti pada titik akhir. Lihat kode berikut:
Saat titik akhir inferensi tanpa server adalah InService
, kita dapat menguji titik akhir dengan mengirimkan permintaan inferensi dan mengamati prediksinya. Diagram berikut mengilustrasikan arsitektur pengaturan ini.
Perhatikan bahwa kami dapat mengirim data mentah sebagai muatan ke titik akhir. Model ansambel yang dihasilkan oleh Autopilot secara otomatis menggabungkan semua langkah transformasi fitur dan label terbalik yang diperlukan, bersama dengan model algoritme dan paket, ke dalam satu model.
Kirim permintaan inferensi ke model terlatih
Gunakan kode berikut untuk mengirimkan inferensi pada model Anda yang dilatih menggunakan mode ensembling:
Luncurkan Pekerjaan Autopilot dengan mode HPO
Dalam mode HPO, untuk CompletionCriteria
selain itu MaxRuntimePerTrainingJobInSeconds
dan MaxAutoMLJobRuntimeInSeconds,
kita juga bisa menentukan MaxCandidates
untuk membatasi jumlah kandidat yang dihasilkan oleh pekerjaan Autopilot. Perhatikan bahwa ini adalah parameter opsional dan hanya diatur untuk membatasi runtime pekerjaan untuk demonstrasi. Lihat kode berikut:
Untuk mendapatkan BestCandidate
untuk pekerjaan sebelumnya, kita dapat kembali menggunakan describe_automl_job
fungsi:
Terapkan model yang dilatih
Autopilot dalam mode HPO untuk jenis masalah klasifikasi menghasilkan tiga kontainer inferensi.
Wadah pertama menangani langkah-langkah transformasi fitur. Selanjutnya, wadah algoritma menghasilkan predicted_label
dengan probabilitas tertinggi. Akhirnya, wadah inferensi pasca-pemrosesan melakukan transformasi terbalik pada label yang diprediksi dan memetakannya ke label aslinya. Untuk informasi lebih lanjut, lihat Definisi wadah inferensi untuk jenis masalah regresi dan klasifikasi.
Kami mengekstrak ketiga wadah inferensi ini dan menerapkannya ke titik akhir tanpa server yang terpisah. Untuk inferensi, kami memanggil titik akhir secara berurutan dengan mengirimkan payload terlebih dahulu ke wadah transformasi fitur, lalu meneruskan keluaran dari wadah ini ke wadah algoritme, dan terakhir meneruskan keluaran dari wadah inferensi sebelumnya ke wadah pasca-pemrosesan, yang menampilkan label yang diprediksi.
Diagram berikut mengilustrasikan arsitektur pengaturan ini.
Kami mengekstrak tiga wadah inferensi dari BestCandidate
dengan kode berikut:
Kirim permintaan inferensi ke model terlatih
Untuk inferensi, kami mengirim payload secara berurutan: pertama ke container transformasi fitur, lalu ke container model, dan terakhir ke container transformasi inverse-label.
Lihat kode berikut:
Implementasi penuh dari contoh ini tersedia di jupyter berikut buku catatan.
Membersihkan
Untuk membersihkan resource, Anda dapat menghapus endpoint, konfigurasi endpoint, dan model tanpa server yang dibuat:
Kesimpulan
Dalam posting ini, kami menunjukkan bagaimana kami dapat menerapkan model yang dihasilkan Autopilot baik dalam mode ansambel dan HPO ke titik akhir inferensi tanpa server. Solusi ini dapat mempercepat kemampuan Anda untuk menggunakan dan memanfaatkan layanan ML yang hemat biaya dan terkelola sepenuhnya seperti Autopilot untuk membuat model dengan cepat dari data mentah, lalu menerapkannya ke titik akhir inferensi tanpa server yang terkelola sepenuhnya dengan penskalaan otomatis bawaan untuk mengurangi biaya .
Kami mendorong Anda untuk mencoba solusi ini dengan kumpulan data yang relevan dengan KPI bisnis Anda. Anda dapat merujuk ke solusi yang diimplementasikan dalam notebook Jupyter di GitHub repo.
Referensi tambahan
tentang Penulis
Praveen Chamarthi adalah Spesialis AI/ML Senior di Amazon Web Services. Dia sangat menyukai AI/ML dan semua hal tentang AWS. Dia membantu pelanggan di seluruh Amerika untuk menskalakan, berinovasi, dan mengoperasikan beban kerja ML secara efisien di AWS. Di waktu luangnya, Praveen suka membaca dan menikmati film sci-fi.
- Lanjutan (300)
- AI
- ai seni
- generator seni ai
- punya robot
- Amazon SageMaker
- Autopilot 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
- Mesin belajar
- plato
- plato ai
- Kecerdasan Data Plato
- Permainan Plato
- Data Plato
- permainan plato
- skala ai
- sintaksis
- Petunjuk Teknis
- zephyrnet.dll