Untuk menyiapkan pipeline ML Anda untuk produksi, Anda harus melakukan 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 Anda mendapatkan kuota yang cukup untuk menyediakan resource yang diperlukan agar pipeline Anda dapat berjalan dalam produksi.
Pipeline penyajian, pelatihan, dan validasi. Pipeline ini memerlukan TPU, GPU, atau CPU. Bergantung pada kasus penggunaan, Anda dapat melatih dan menayangkan di hardware yang berbeda, atau menggunakan hardware yang sama. Misalnya, pelatihan mungkin terjadi di CPU, tetapi penayangan mungkin menggunakan TPU, atau sebaliknya. Secara umum, model dilatih di hardware yang lebih besar, lalu ditayangkan di hardware yang lebih kecil.
Saat memilih hardware, pertimbangkan hal berikut:
- Dapatkah Anda melakukan pelatihan di hardware yang lebih murah?
- Apakah beralih ke hardware yang berbeda 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 perlu memperkirakan jumlah kuota yang diperlukan pipeline untuk membuat set data pelatihan dan pengujian.
Anda mungkin tidak mengalokasikan kuota untuk setiap pipeline. Sebagai gantinya, Anda dapat mengalokasikan kuota yang digunakan bersama oleh pipeline. Dalam kasus seperti itu, pastikan Anda memiliki kuota yang cukup untuk menjalankan semua pipeline, dan siapkan pemantauan dan pemberitahuan untuk mencegah satu pipeline yang salah menggunakan semua kuota.
Memperkirakan kuota
Untuk memperkirakan kuota yang Anda perlukan untuk pipeline data dan pelatihan, cari project serupa sebagai dasar perkiraan Anda. Untuk memperkirakan kuota penayangan, coba prediksi kueri per detik layanan. Metode ini memberikan dasar. Saat Anda mulai membuat prototipe solusi selama fase eksperimen, Anda akan mulai mendapatkan perkiraan kuota yang lebih akurat.
Saat memperkirakan kuota, ingatlah untuk memperhitungkan kuota tidak hanya untuk pipeline produksi, tetapi juga untuk eksperimen yang sedang berlangsung.
Periksa Pemahaman Anda
Logging, pemantauan, dan pemberitahuan
Logging dan pemantauan perilaku model produksi sangat penting. Infrastruktur pemantauan yang andal memastikan model Anda memberikan prediksi yang andal dan berkualitas tinggi.
Praktik pencatatan log dan pemantauan yang baik membantu mengidentifikasi masalah secara proaktif dalam pipeline ML dan memitigasi potensi dampak bisnis. Jika masalah terjadi, pemberitahuan akan memberi tahu anggota tim Anda, dan log yang komprehensif akan mempermudah diagnosis akar masalah.
Anda harus menerapkan logging dan pemantauan untuk mendeteksi masalah berikut pada pipeline ML:
Pipeline | Memantau |
---|---|
Tayang |
|
Data |
|
Pelatihan |
|
Validasi |
|
Anda juga memerlukan logging, pemantauan, dan pemberitahuan untuk hal berikut:
- Latensi. Berapa lama waktu yang diperlukan untuk memberikan prediksi?
- Gangguan. Apakah model telah berhenti memberikan prediksi?
Periksa Pemahaman Anda
Men-deploy model
Untuk deployment model, Anda harus mendokumentasikan hal berikut:
- Persetujuan diperlukan untuk memulai deployment dan meningkatkan peluncuran.
- Cara menempatkan model ke dalam produksi.
- Tempat model di-deploy, misalnya, jika ada lingkungan staging atau canary.
- Tindakan yang harus dilakukan jika deployment gagal.
- Cara me-roll back model yang sudah dalam produksi.
Setelah mengotomatiskan pelatihan model, Anda perlu mengotomatiskan validasi dan deployment. Mengotomatiskan deployment mendistribusikan tanggung jawab dan mengurangi kemungkinan deployment terhambat oleh satu orang. Hal ini juga mengurangi potensi kesalahan, meningkatkan efisiensi dan keandalan, serta memungkinkan rotasi petugas yang bertugas dan dukungan SRE.
Biasanya, Anda men-deploy model baru ke sebagian pengguna untuk memeriksa apakah model tersebut berperilaku seperti yang diharapkan. Jika sudah benar, lanjutkan deployment. Jika tidak, Anda akan melakukan roll back deployment dan mulai mendiagnosis serta men-debug masalah.