Untuk menyiapkan pipeline ML untuk produksi, Anda perlu melakukan hal-hal berikut:
- Menyediakan resource komputasi untuk pipeline Anda
- Menerapkan logging, pemantauan, dan pemberitahuan
Menyediakan resource komputasi
Menjalankan pipeline ML memerlukan resource komputasi, seperti RAM, CPU, dan GPU/TPU. Tanpa komputasi yang memadai, Anda tidak dapat menjalankan pipeline. Oleh karena itu, pastikan mendapatkan kuota yang cukup guna menyediakan resource yang diperlukan untuk pipeline Anda yang diperlukan untuk beroperasi dalam lingkungan produksi.
Pipeline penayangan, pelatihan, dan validasi. Pipeline ini memerlukan TPU, GPU, atau CPU. Bergantung pada kasus penggunaan, Anda dapat melatih dan menyajikan pada perangkat keras yang berbeda, atau menggunakan perangkat keras yang sama. Misalnya, pelatihan mungkin terjadi pada CPU tetapi penyaluran mungkin menggunakan TPU, atau sebaliknya. Secara umum, umumnya dilatih pada perangkat keras yang lebih besar dan kemudian disajikan pada perangkat keras yang lebih kecil.
Saat memilih hardware, pertimbangkan hal berikut:
- Dapatkah Anda melatih perangkat keras yang lebih murah?
- Apakah beralih ke hardware lain akan meningkatkan performa?
- Berapa ukuran modelnya dan hardware mana yang akan mengoptimalkan performanya?
- Hardware apa yang ideal berdasarkan arsitektur model Anda?
Pipeline data. Pipeline data memerlukan kuota untuk RAM dan CPU Anda harus memperkirakan seberapa banyak kuota yang dibutuhkan pipeline Anda untuk membuat set data pelatihan dan pengujian.
Anda mungkin tidak mengalokasikan kuota untuk setiap pipeline. Sebagai gantinya, Anda mungkin mengalokasikan kuota yang digunakan bersama oleh pipeline. Dalam kasus tersebut, verifikasi Anda memiliki cukup kuota untuk menjalankan semua {i>pipelines<i} Anda, dan mengatur mengubahnya untuk mencegah satu pipeline yang salah memakai semua kuota.
Memperkirakan kuota
Untuk memperkirakan kuota yang diperlukan untuk pipeline data dan pelatihan, proyek serupa sebagai dasar estimasi Anda. Untuk memperkirakan kuota penayangan, coba memprediksi kueri layanan per detik. Metode ini memberikan dasar pengukuran. Sebagai saat membuat prototipe solusi selama fase eksperimen, Anda akan memulai untuk mendapatkan perkiraan kuota yang lebih tepat.
Saat memperkirakan kuota, ingatlah untuk memperhitungkan kuota tidak hanya untuk produksi Anda pipeline, tetapi juga untuk eksperimen berkelanjutan.
Memeriksa Pemahaman Anda
Logging, pemantauan, dan pemberitahuan
Logging dan pemantauan perilaku model produksi sangatlah penting. Robust Infrastruktur pemantauan akan mengonfirmasi bahwa model Anda menyajikan prediksi berkualitas tinggi.
Praktik logging dan pemantauan yang baik membantu mengidentifikasi masalah di ML secara proaktif jaringan perusahaan dan memitigasi potensi dampak bisnis. Saat masalah terjadi, peringatan akan terjadi memberi tahu anggota tim Anda, dan log yang komprehensif memudahkan dalam mendiagnosis akar penyebab masalahnya.
Anda harus menerapkan logging dan pemantauan untuk mendeteksi masalah berikut dengan pipeline ML:
Pipeline | Memantau |
---|---|
Tayang |
|
Data |
|
Pelatihan |
|
Validasi |
|
Anda juga memerlukan logging, pemantauan, dan pemberitahuan untuk hal-hal berikut:
- Latensi. Berapa lama waktu yang diperlukan untuk menghasilkan prediksi?
- Penghentian. Apakah model telah berhenti mengirimkan prediksi?
Memeriksa Pemahaman Anda
Men-deploy model
Untuk deployment model, sebaiknya dokumentasikan hal berikut:
- Persetujuan diperlukan untuk memulai deployment dan meningkatkan peluncuran.
- Cara menerapkan model ke dalam produksi.
- Tempat model di-deploy, misalnya, jika ada staging atau canary lingkungan fleksibel App Engine.
- Tindakan yang harus dilakukan jika deployment gagal.
- Cara melakukan rollback model yang sudah ada dalam produksi.
Setelah mengotomatiskan pelatihan model, Anda dapat mengotomatisasi validasi dan deployment. Mengotomatiskan deployment mendistribusikan tanggung jawab dan mengurangi kemungkinan terhambatnya suatu deployment oleh kepada satu orang. Langkah ini juga mengurangi potensi kesalahan, meningkatkan efisiensi dan keandalan, dan memungkinkan rotasi on-call dan dukungan SRE.
Biasanya Anda men-deploy model baru ke sebagian pengguna untuk memeriksa apakah model tersebut sudah berperilaku seperti yang diharapkan. Jika ya, lanjutkan dengan deployment. Jika tidak, Anda melakukan rollback deployment dan mulai mendiagnosis dan men-debug masalah.