Langkah 2. Buat skrip runtime - AWS Bimbingan Preskriptif

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

Langkah 2. Buat skrip runtime

Membuat skrip runtime.

Pada langkah ini, Anda mengintegrasikan model yang Anda kembangkan pada langkah 1 dan kode pembantu terkait ke dalam platform ML untuk pelatihan dan inferensi siap produksi. Secara khusus, ini melibatkan pengembangan skrip runtime sehingga model dapat dimasukkan ke dalam SageMaker AI. Skrip Python mandiri ini mencakup fungsi callback AI yang SageMaker telah ditentukan sebelumnya dan variabel lingkungan. Mereka dijalankan di dalam wadah SageMaker AI yang di-host di instans Amazon Elastic Compute Cloud (Amazon EC2). Dokumentasi Amazon SageMaker AI Python SDK memberikan informasi terperinci tentang bagaimana callback dan pengaturan tambahan ini bekerja sama untuk pelatihan dan inferensi. (Misalnya, lihat Mempersiapkan skrip pelatihan scikit-learn dan Menerapkan model scikit-learn dalam dokumentasi AI.) SageMaker Bagian berikut memberikan rekomendasi tambahan untuk mengembangkan skrip runtime HTML, berdasarkan pengalaman kami bekerja dengan AWS pelanggan.

Menggunakan pekerjaan pemrosesan

SageMaker AI menyediakan dua opsi untuk melakukan inferensi model mode batch. Anda dapat menggunakan pekerjaan pemrosesan SageMaker AI atau pekerjaan transformasi batch. Setiap opsi memiliki kelebihan dan kekurangan.

Pekerjaan pemrosesan terdiri dari file Python yang berjalan di dalam wadah SageMaker AI. Pekerjaan pemrosesan terdiri dari logika apa pun yang Anda masukkan ke dalam file Python Anda. Ini memiliki kelebihan ini:

  • Ketika Anda memahami logika dasar pekerjaan pelatihan, pekerjaan pemrosesan mudah diatur dan mudah dipahami. Mereka berbagi abstraksi yang sama dengan pekerjaan pelatihan (misalnya, menyetel jumlah instance dan distribusi data).

  • Ilmuwan data dan insinyur ML memiliki kontrol penuh atas opsi manipulasi data.

  • Ilmuwan data tidak harus mengelola logika komponen I/O apa pun kecuali untuk fungsionalitas baca/tulis yang sudah dikenal.

  • Agak lebih mudah untuk menjalankan file di lingkungan SageMaker non-AI, yang membantu pengembangan cepat dan pengujian lokal.

  • Jika ada kesalahan, pekerjaan pemrosesan gagal segera setelah skrip gagal, dan tidak ada menunggu yang tidak terduga untuk mencoba lagi.

Di sisi lain, pekerjaan transformasi batch merupakan perpanjangan dari konsep titik akhir SageMaker AI. Saat runtime, pekerjaan ini mengimpor fungsi callback, yang kemudian menangani I/O untuk membaca data, memuat model, dan membuat prediksi. Pekerjaan transformasi Batch memiliki keuntungan sebagai berikut:

  • Mereka menggunakan abstraksi distribusi data yang berbeda dari abstraksi yang digunakan oleh pekerjaan pelatihan.

  • Mereka menggunakan file inti dan struktur fungsi yang sama untuk inferensi batch dan inferensi waktu nyata, yang nyaman.

  • Mereka memiliki mekanisme toleransi kesalahan berbasis coba ulang bawaan. Misalnya, jika terjadi kesalahan pada sekumpulan catatan, itu akan mencoba lagi beberapa kali sebelum pekerjaan dihentikan sebagai kegagalan.

Karena transparansi, kemudahan penggunaannya di berbagai lingkungan, dan abstraksi bersama dengan pekerjaan pelatihan, kami memutuskan untuk menggunakan pekerjaan pemrosesan alih-alih pekerjaan transformasi batch dalam arsitektur referensi yang disajikan dalam panduan ini.

Anda harus menjalankan skrip runtime Python secara lokal sebelum Anda menerapkannya di cloud. Secara khusus, kami menyarankan Anda menggunakan klausa penjaga utama ketika Anda menyusun skrip Python Anda, dan melakukan pengujian unit.

Menggunakan klausa penjaga utama

Gunakan klausa penjaga utama untuk mendukung impor modul dan menjalankan skrip Python Anda. Menjalankan skrip Python satu per satu bermanfaat untuk men-debug dan mengisolasi masalah dalam pipeline ML. Kami merekomendasikan langkah-langkah berikut:

  • Gunakan parser argumen dalam file pemrosesan Python untuk menentukan file input/output dan lokasinya.

  • Berikan panduan utama dan fungsi uji untuk setiap file Python.

  • Setelah Anda menguji file Python, masukkan ke dalam tahapan yang berbeda dari pipeline ML, apakah Anda menggunakan AWS Step Functions model atau pekerjaan pemrosesan SageMaker AI.

  • Gunakan pernyataan Assert di bagian kritis skrip untuk memfasilitasi pengujian dan debugging. Misalnya, Anda dapat menggunakan pernyataan Assert untuk memastikan bahwa jumlah fitur dataset konsisten setelah pemuatan.

Pengujian unit

Pengujian unit skrip runtime yang ditulis untuk pipeline adalah tugas penting yang sering diabaikan dalam pengembangan pipeline ML. Ini karena pembelajaran mesin dan ilmu data adalah bidang yang relatif baru dan lambat untuk mengadopsi praktik rekayasa perangkat lunak yang mapan seperti pengujian unit. Karena pipa ML akan digunakan di lingkungan produksi, penting untuk menguji kode pipa sebelum menerapkan model ML ke aplikasi dunia nyata.

Unit pengujian skrip runtime juga memberikan manfaat unik berikut untuk model ML:

  • Ini mencegah transformasi data yang tidak terduga. Sebagian besar jaringan pipa ML melibatkan banyak transformasi data, sehingga sangat penting untuk transformasi ini untuk melakukan seperti yang diharapkan.

  • Ini memvalidasi reproduktifitas kode. Setiap keacakan dalam kode dapat dideteksi dengan pengujian unit dengan kasus penggunaan yang berbeda.

  • Ini memberlakukan modularitas kode. Tes unit biasanya dikaitkan dengan ukuran cakupan pengujian, yang merupakan sejauh mana rangkaian pengujian tertentu (kumpulan kasus uji) menjalankan kode sumber suatu program. Untuk mencapai cakupan pengujian yang tinggi, pengembang memodulasi kode, karena sulit untuk menulis pengujian unit untuk sejumlah besar kode tanpa memecahnya menjadi fungsi atau kelas.

  • Ini mencegah kode atau kesalahan berkualitas rendah dimasukkan ke dalam produksi.

Kami menyarankan Anda menggunakan kerangka pengujian unit yang matang seperti pytest untuk menulis kasus pengujian unit, karena lebih mudah untuk mengelola pengujian unit ekstensif dalam kerangka kerja.

penting

Pengujian unit tidak dapat menjamin bahwa semua casing sudut diuji, tetapi dapat membantu Anda secara proaktif menghindari kesalahan sebelum Anda menerapkan model. Kami menyarankan Anda juga memantau model setelah penerapan, untuk memastikan keunggulan operasional.