Pipa Amazon SageMaker memungkinkan ilmuwan data dan insinyur pembelajaran mesin (ML) untuk mengotomatiskan alur kerja pelatihan, yang membantu Anda membuat proses berulang untuk mengatur langkah-langkah pengembangan model untuk eksperimen cepat dan pelatihan ulang model. Anda dapat mengotomatiskan seluruh alur kerja pembuatan model, termasuk persiapan data, rekayasa fitur, pelatihan model, penyetelan model, dan validasi model, serta membuat katalognya di registri model. Anda dapat mengonfigurasi pipeline agar berjalan secara otomatis pada interval reguler atau saat peristiwa tertentu dipicu, atau Anda dapat menjalankannya secara manual sesuai kebutuhan.
Dalam posting ini, kami menyoroti beberapa peningkatan pada Amazon SageMaker SDK dan perkenalkan fitur baru Amazon SageMaker Pipelines yang memudahkan praktisi ML untuk membangun dan melatih model ML.
Pipelines terus berinovasi dalam pengalaman pengembangnya, dan dengan rilis terbaru ini, Anda kini dapat menggunakan layanan dengan cara yang lebih disesuaikan:
- 2.99.0, 2.101.1, 2.102.0, 2.104.0 – Dokumentasi yang diperbarui pada
PipelineVariable
penggunaan untuk estimator, prosesor, tuner, transformator, dan kelas dasar model, model Amazon, dan model kerangka kerja. Akan ada perubahan tambahan yang datang dengan versi SDK yang lebih baru untuk mendukung semua subkelas penaksir dan pemroses. - 2.90.0 - Ketersediaan ModelLangkah untuk tugas-tugas pembuatan dan pendaftaran sumber daya model terintegrasi.
- 2.88.2 - Ketersediaan Sesi Pipa untuk interaksi terkelola dengan entitas dan sumber daya SageMaker.
- 2.88.2 – Kompatibilitas subkelas untuk alur kerja alur kerja alur kerja sehingga Anda dapat membangun abstraksi pekerjaan dan mengonfigurasi serta menjalankan pemrosesan, pelatihan, transformasi, dan penyetelan pekerjaan seperti yang Anda lakukan tanpa pipeline.
- 2.76.0 - Ketersediaan GagalLangkah untuk menghentikan pipa dengan status kegagalan secara kondisional.
Dalam postingan ini, kami memandu Anda melalui alur kerja menggunakan kumpulan data sampel dengan fokus pada pembuatan dan penerapan model untuk mendemonstrasikan cara mengimplementasikan fitur baru Pipelines. Pada akhirnya, Anda harus memiliki informasi yang cukup untuk berhasil menggunakan fitur-fitur baru ini dan menyederhanakan beban kerja ML Anda.
Ikhtisar fitur
Pipelines menawarkan fitur baru berikut:
- Anotasi variabel saluran pipa – Parameter metode tertentu menerima beberapa jenis input, termasuk
PipelineVariables
, dan dokumentasi tambahan telah ditambahkan untuk memperjelas di manaPipelineVariables
didukung dalam versi stabil terbaru dari dokumentasi SageMaker SDK dan tanda tangan init dari fungsi. Misalnya, dalam penaksir TensorFlow berikut, tanda tangan init sekarang menunjukkan bahwamodel_dir
danimage_uri
mendukungPipelineVariables
, sedangkan parameter lainnya tidak. Untuk informasi lebih lanjut, lihat Penaksir TensorFlow.- Sebelum:
- Setelah:
- Sesi pipa - Sesi Pipa adalah konsep baru yang diperkenalkan untuk menghadirkan kesatuan di SageMaker SDK dan memperkenalkan inisialisasi sumber daya pipeline (panggilan run ditangkap tetapi tidak dijalankan hingga pipeline dibuat dan dijalankan). Itu
PipelineSession
konteks mewarisiSageMakerSession
dan mengimplementasikan metode yang mudah bagi Anda untuk berinteraksi dengan entitas dan sumber daya SageMaker lainnya, seperti tugas pelatihan, titik akhir, dan set data masukan yang disimpan di Layanan Penyimpanan Sederhana Amazon (Amazon S3). - Kompatibilitas subkelas dengan langkah-langkah pekerjaan pipa alur kerja – Anda sekarang dapat membangun abstraksi pekerjaan dan mengonfigurasi serta menjalankan pemrosesan, pelatihan, transformasi, dan penyetelan pekerjaan seperti yang Anda lakukan tanpa pipeline.
- Misalnya, membuat langkah pemrosesan dengan
SKLearnProcessor
sebelumnya diperlukan sebagai berikut: - Seperti yang kita lihat pada kode sebelumnya,
ProcessingStep
perlu melakukan logika preprocessing yang pada dasarnya sama dengan.run
, hanya tanpa memulai panggilan API untuk memulai pekerjaan. Tetapi dengan kompatibilitas subkelas yang sekarang diaktifkan dengan langkah-langkah pekerjaan pipa alur kerja, kami mendeklarasikanstep_args
argumen yang menggunakan logika prapemrosesan dengan .run sehingga Anda dapat membuat abstraksi pekerjaan dan mengonfigurasinya seperti yang akan Anda gunakan tanpa Pipeline. Kami juga lulus dipipeline_session
, Yang merupakanPipelineSession
objek, bukannyasagemaker_session
untuk memastikan panggilan yang dijalankan ditangkap tetapi tidak dipanggil sampai pipa dibuat dan dijalankan. Lihat kode berikut:
- Misalnya, membuat langkah pemrosesan dengan
- Langkah model (pendekatan yang disederhanakan dengan langkah pembuatan dan pendaftaran model) –Pipelines menawarkan dua jenis langkah untuk diintegrasikan dengan model SageMaker:
CreateModelStep
danRegisterModel
. Anda sekarang dapat mencapai keduanya hanya dengan menggunakanModelStep
Tipe. Perhatikan bahwaPipelineSession
diperlukan untuk mencapai hal ini. Ini membawa kesamaan antara langkah pipa dan SDK.- Sebelum:
-
- Setelah:
- Langkah gagal (penghentian bersyarat dari jalur pipa) -
FailStep
memungkinkan pipa dihentikan dengan status kegagalan jika suatu kondisi terpenuhi, seperti jika skor model di bawah ambang batas tertentu.
Ikhtisar solusi
Dalam solusi ini, titik masuk Anda adalah Studio Amazon SageMaker lingkungan pengembangan terintegrasi (IDE) untuk eksperimen cepat. Studio menawarkan lingkungan untuk mengelola pengalaman Pipeline menyeluruh. Dengan Studio, Anda dapat melewati Konsol Manajemen AWS untuk seluruh manajemen alur kerja Anda. Untuk informasi lebih lanjut tentang mengelola Pipeline dari dalam Studio, lihat Lihat, Lacak, dan Jalankan Pipeline SageMaker di SageMaker Studio.
Diagram berikut mengilustrasikan arsitektur tingkat tinggi dari alur kerja ML dengan langkah-langkah berbeda untuk melatih dan menghasilkan inferensi menggunakan fitur baru.
Pipa mencakup langkah-langkah berikut:
- Praproses data untuk membangun fitur yang diperlukan dan membagi data menjadi set data kereta, validasi, dan pengujian.
- Buat tugas pelatihan dengan kerangka kerja SageMaker XGBoost.
- Evaluasi model yang dilatih menggunakan dataset uji.
- Periksa apakah skor AUC di atas ambang batas yang telah ditentukan.
- Jika skor AUC kurang dari ambang batas, hentikan jalur pipa dan tandai sebagai gagal.
- Jika skor AUC lebih besar dari ambang batas, buat model SageMaker dan daftarkan di registri model SageMaker.
- Terapkan transformasi batch pada kumpulan data yang diberikan menggunakan model yang dibuat pada langkah sebelumnya.
Prasyarat
Untuk mengikuti postingan ini, Anda memerlukan akun AWS dengan a Domain studio.
Pipeline terintegrasi langsung dengan entitas dan sumber daya SageMaker, sehingga Anda tidak perlu berinteraksi dengan layanan AWS lainnya. Anda juga tidak perlu mengelola sumber daya apa pun karena ini adalah layanan yang terkelola sepenuhnya, yang berarti ia membuat dan mengelola sumber daya untuk Anda. Untuk informasi selengkapnya tentang berbagai komponen SageMaker yang merupakan API Python mandiri bersama dengan komponen Studio yang terintegrasi, lihat Halaman produk SageMaker.
Sebelum memulai, instal SageMaker SDK versi >= 2.104.0 dan xlrd >=1.0.0 dalam notebook Studio menggunakan cuplikan kode berikut:
alur kerja ML
Untuk posting ini, Anda menggunakan komponen berikut:
- Persiapan data
- Pengolahan SageMaker – SageMaker Processing adalah layanan terkelola sepenuhnya yang memungkinkan Anda menjalankan transformasi data kustom dan rekayasa fitur untuk beban kerja ML.
- Bangunan model
- Pelatihan dan evaluasi model
- Pelatihan sekali klik – Fitur pelatihan yang didistribusikan SageMaker. SageMaker menyediakan perpustakaan pelatihan terdistribusi untuk paralelisme data dan paralelisme model. Pustaka dioptimalkan untuk lingkungan pelatihan SageMaker, membantu menyesuaikan tugas pelatihan terdistribusi Anda ke SageMaker, dan meningkatkan kecepatan dan hasil pelatihan.
- Eksperimen SageMaker – Eksperimen adalah kemampuan SageMaker yang memungkinkan Anda mengatur, melacak, membandingkan, dan mengevaluasi iterasi ML Anda.
- Transformasi batch SageMaker – Transformasi batch atau penilaian offline adalah layanan terkelola di SageMaker yang memungkinkan Anda memprediksi pada kumpulan data yang lebih besar menggunakan model ML Anda.
- Orkestrasi alur kerja
Pipeline SageMaker adalah serangkaian langkah yang saling berhubungan yang ditentukan oleh definisi pipeline JSON. Ini mengkodekan pipa menggunakan grafik asiklik terarah (DAG). DAG memberikan informasi tentang persyaratan dan hubungan antara setiap langkah pipa, dan strukturnya ditentukan oleh dependensi data antar langkah. Dependensi ini dibuat ketika properti dari output langkah dilewatkan sebagai input ke langkah lain.
Diagram berikut mengilustrasikan langkah-langkah berbeda dalam pipeline SageMaker (untuk kasus penggunaan prediksi churn) di mana koneksi antara langkah-langkah tersebut disimpulkan oleh SageMaker berdasarkan input dan output yang ditentukan oleh definisi langkah.
Bagian selanjutnya berjalan melalui pembuatan setiap langkah pipa dan menjalankan seluruh pipa setelah dibuat.
Struktur proyek
Mari kita mulai dengan struktur proyek:
- /contoh-sm-pipelines-end-to-end – Nama proyek
- /data – Dataset
- /pipa – File kode untuk komponen pipa
- / pelangganchurn
- praproses.py
- evaluasi.py
- / pelangganchurn
- sagemaker-pipelines-project.ipynb – Buku catatan yang menelusuri alur kerja pemodelan menggunakan fitur baru Pipelines
Unduh kumpulan datanya
Untuk mengikuti posting ini, Anda perlu mengunduh dan menyimpan contoh kumpulan data di bawah folder data dalam direktori home proyek, yang menyimpan file di Sistem File Amazon Elastis (Amazon EFS) dalam lingkungan Studio.
Bangun komponen pipa
Sekarang Anda siap untuk membangun komponen pipa.
Impor pernyataan dan deklarasikan parameter dan konstanta
Buat buku catatan Studio bernama sagemaker-pipelines-project.ipynb
dalam direktori home proyek. Masukkan blok kode berikut dalam sel, dan jalankan sel untuk mengatur objek klien SageMaker dan S3, buat PipelineSession
, dan atur lokasi bucket S3 menggunakan bucket default yang disertakan dengan sesi SageMaker:
Pipelines mendukung parameterisasi, yang memungkinkan Anda menentukan parameter input saat runtime tanpa mengubah kode pipeline Anda. Anda dapat menggunakan modul yang tersedia di bawah sagemaker.workflow.parameters
modul, seperti ParameterInteger
, ParameterFloat
, dan ParameterString
, untuk menentukan parameter pipeline dari berbagai tipe data. Jalankan kode berikut untuk menyiapkan beberapa parameter input:
Hasilkan kumpulan data batch
Hasilkan kumpulan data batch, yang Anda gunakan nanti dalam langkah transformasi batch:
Unggah data ke ember S3
Unggah kumpulan data ke Amazon S3:
Tentukan skrip pemrosesan dan langkah pemrosesan
Pada langkah ini, Anda menyiapkan skrip Python untuk melakukan rekayasa fitur, satu pengkodean panas, dan menyusun pelatihan, validasi, dan pemisahan pengujian yang akan digunakan untuk pembuatan model. Jalankan kode berikut untuk membuat skrip pemrosesan Anda:
Selanjutnya, jalankan blok kode berikut untuk membuat instance prosesor dan langkah Pipelines untuk menjalankan skrip pemrosesan. Karena skrip pemrosesan ditulis dalam Pandas, Anda menggunakan a Prosesor SKLearn. Jalur Pipa ProcessingStep
fungsi mengambil argumen berikut: prosesor, lokasi input S3 untuk dataset mentah, dan lokasi output S3 untuk menyimpan dataset yang diproses.
Tentukan langkah pelatihan
Siapkan pelatihan model menggunakan estimator SageMaker XGBoost dan Pipelines TrainingStep
fungsi:
Tentukan skrip evaluasi dan langkah evaluasi model
Jalankan blok kode berikut untuk mengevaluasi model setelah dilatih. Skrip ini merangkum logika untuk memeriksa apakah skor AUC memenuhi ambang batas yang ditentukan.
Selanjutnya, jalankan blok kode berikut untuk membuat instance prosesor dan langkah Pipelines untuk menjalankan skrip evaluasi. Karena skrip evaluasi menggunakan paket XGBoost, Anda menggunakan a ScriptProcessor
bersama dengan gambar XGBoost. Jalur Pipa ProcessingStep
fungsi mengambil argumen berikut: prosesor, lokasi input S3 untuk dataset mentah, dan lokasi output S3 untuk menyimpan dataset yang diproses.
Tentukan langkah membuat model
Jalankan blok kode berikut untuk membuat model SageMaker menggunakan langkah model Pipelines. Langkah ini memanfaatkan output dari langkah pelatihan untuk mengemas model untuk penerapan. Perhatikan bahwa nilai untuk argumen tipe instans diteruskan menggunakan parameter Pipelines yang Anda tetapkan sebelumnya di postingan.
Tentukan langkah transformasi batch
Jalankan blok kode berikut untuk menjalankan transformasi batch menggunakan model terlatih dengan input batch yang dibuat pada langkah pertama:
Tentukan langkah model register
Kode berikut mendaftarkan model dalam registri model SageMaker menggunakan langkah model Pipelines:
Tentukan langkah gagal untuk menghentikan pipa
Kode berikut mendefinisikan langkah Pipelines fail untuk menghentikan pipeline yang berjalan dengan pesan kesalahan jika skor AUC tidak memenuhi ambang batas yang ditentukan:
Tentukan langkah kondisi untuk memeriksa skor AUC
Kode berikut menentukan langkah kondisi untuk memeriksa skor AUC dan membuat model secara kondisional dan menjalankan transformasi batch dan mendaftarkan model di registri model, atau menghentikan jalur pipa yang dijalankan dalam keadaan gagal:
Bangun dan jalankan pipa
Setelah mendefinisikan semua langkah komponen, Anda dapat merakitnya menjadi objek Pipelines. Anda tidak perlu menentukan urutan pipeline karena Pipelines secara otomatis menyimpulkan urutan urutan berdasarkan dependensi di antara langkah-langkahnya.
Jalankan kode berikut dalam sel di buku catatan Anda. Jika pipa sudah ada, kode memperbarui pipa. Jika pipa tidak ada, itu membuat yang baru.
Kesimpulan
Dalam posting ini, kami memperkenalkan beberapa fitur baru yang sekarang tersedia dengan Pipelines bersama dengan fitur SageMaker bawaan lainnya dan algoritme XGBoost untuk mengembangkan, mengulangi, dan menerapkan model untuk prediksi churn. Solusinya dapat diperluas dengan sumber data tambahan
untuk mengimplementasikan alur kerja ML Anda sendiri. Untuk detail selengkapnya tentang langkah-langkah yang tersedia di alur kerja Pipeline, lihat Pipa Pembuatan Model Amazon SageMaker dan Alur Kerja SageMaker. itu Contoh AWS SageMaker Repo GitHub memiliki lebih banyak contoh seputar berbagai kasus penggunaan menggunakan Pipelines.
Tentang Penulis
Jerry Peng adalah insinyur pengembangan perangkat lunak dengan AWS SageMaker. Dia berfokus untuk membangun sistem MLOps skala besar yang menyeluruh mulai dari pelatihan hingga pemantauan model dalam produksi. Dia juga bersemangat membawa konsep MLOps ke khalayak yang lebih luas.
Dewi Qi adalah Insinyur Pengembangan Perangkat Lunak di AWS. Dia saat ini berfokus pada pengembangan dan peningkatan SageMaker Pipelines. Di luar pekerjaan, dia senang berlatih Cello.
Gayatri Ghanakota adalah Insinyur Pembelajaran Mesin Senior dengan Layanan Profesional AWS. Dia bersemangat mengembangkan, menerapkan, dan menjelaskan solusi AI/ML di berbagai domain. Sebelum peran ini, ia memimpin berbagai inisiatif sebagai ilmuwan data dan insinyur ML dengan perusahaan global terkemuka di bidang keuangan dan ritel. Dia meraih gelar master di bidang Ilmu Komputer dengan spesialisasi Ilmu Data dari University of Colorado, Boulder.
Rupinder Grewal adalah Arsitek Solusi Spesialis Sr Ai/ML dengan AWS. Dia saat ini berfokus pada penyajian model dan MLOps di SageMaker. Sebelum peran ini, ia telah bekerja sebagai Insinyur Pembelajaran Mesin yang membangun dan menjadi model hosting. Di luar pekerjaan ia menikmati bermain tenis dan bersepeda di jalur gunung.
Ray Li adalah Sr. Data Scientist dengan AWS Professional Services. Spesialisasinya berfokus pada membangun dan mengoperasionalkan solusi AI/ML untuk pelanggan dengan berbagai ukuran, mulai dari perusahaan rintisan hingga organisasi perusahaan. Di luar pekerjaan, Ray menikmati kebugaran dan bepergian.
- 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
- Mesin belajar
- plato
- plato ai
- Kecerdasan Data Plato
- Permainan Plato
- Data Plato
- permainan plato
- skala ai
- sintaksis
- zephyrnet.dll