Pengujian untuk Men-deploy Model Machine Learning

Anda siap untuk men-deploy. Jika hanya men-deploy model semudah menekan tombol merah besar. Saat men-deploy, Anda ingin pipeline berjalan, diupdate, dan ditayangkan tanpa hambatan. Kebutuhan tersebut mengarah pada persyaratan dan solusi yang dibahas di halaman ini.

Menguji Update Model dengan Pelatihan yang Dapat Direproduksi

Tidak diragukan lagi, Anda ingin terus meningkatkan prediksi tampilan unicorn Anda. Misalnya, Anda memfaktorkan ulang kode rekayasa fitur untuk fitur "waktu". Bagaimana Anda menguji bahwa kode tersebut benar? Anda memutuskan untuk melatih model lagi dan melihat apakah Anda mendapatkan hasil yang sama. Oh tidak, pelatihan model Anda tidak dapat direproduksi. Bertekad untuk terus memprediksi tampilan unicorn, Anda menyelidiki lebih lanjut. Anda dapat meraih hasil yang dapat dibuat dengan mengikuti langkah-langkah berikut:

  • Menetapkan generator angka acak (RNG) secara penentu. Untuk mengetahui detailnya, lihat pengacakan dalam pembuatan data dari kursus Persiapan Data dan Rekayasa Fitur di ML.

  • Menginisialisasi komponen model dalam urutan tetap untuk memastikan komponen mendapatkan nomor acak yang sama dari RNG setiap kali dijalankan. Library ML biasanya menangani persyaratan ini secara otomatis.

  • Rata-rata beberapa proses model.

  • Gunakan kontrol versi, bahkan untuk iterasi awal, sehingga Anda dapat menentukan kode dan parameter saat menyelidiki model atau pipeline.

Bahkan setelah melakukan langkah-langkah ini, Anda bisa mendapatkan sumber non-determinisme lainnya.

Menguji Update Model ke Spesifikasi dan panggilan API

Setelah memperbarui model ke Unicorn Predictor 2.0, Anda perlu menguji model baru untuk memastikan kebenaran algoritme, beserta setiap perubahan pada panggilan API. Mari kita bahas caranya.

Menguji Panggilan API

Bagaimana cara menguji update panggilan API? Tentu, Anda dapat melatih ulang model, tetapi hal itu memakan waktu. Sebagai gantinya, tulis pengujian unit untuk menghasilkan data input acak dan jalankan satu langkah penurunan gradien. Anda ingin menyelesaikan langkah tersebut tanpa error runtime.

Pengujian untuk Ketepatan Algoritme

Model tidak hanya harus memprediksi dengan benar, tetapi juga melakukannya karena benar secara algoritme, tidak beruntung. Misalnya, jika 99% email bukan spam, mengklasifikasikan semua email sebagai bukan spam akan mendapatkan akurasi 99% secara kebetulan. Oleh karena itu, Anda perlu memeriksa model untuk memastikan keakuratannya. Ikuti langkah-langkah ini:

  • Melatih model Anda untuk beberapa iterasi dan memverifikasi bahwa kerugiannya menurun.
  • Latih algoritme Anda tanpa regulerisasi. Jika model Anda cukup kompleks, model tersebut akan mengingat data pelatihan dan kehilangan pelatihan akan mendekati 0.
  • Uji subkomputasi tertentu dari algoritme Anda. Misalnya, Anda dapat menguji apakah bagian RNN Anda berjalan satu kali per elemen data input.

Menulis pengujian Integrasi untuk Komponen Pipeline

Dalam pipeline ML, perubahan dalam satu komponen dapat menyebabkan error pada komponen lainnya. Pastikan komponen berfungsi bersama dengan menulis pengujian yang menjalankan seluruh pipeline secara menyeluruh. Pengujian tersebut disebut pengujian integrasi.

Selain menjalankan pengujian integrasi secara berkelanjutan, Anda harus menjalankan pengujian integrasi saat menerapkan model baru dan versi software baru. Kelambatan menjalankan seluruh pipeline akan mempersulit pengujian continuous integration. Untuk menjalankan pengujian integrasi lebih cepat, latih subset data atau dengan model yang lebih sederhana. Detailnya bergantung pada model dan data Anda. Untuk mendapatkan cakupan berkelanjutan, Anda harus menyesuaikan pengujian yang lebih cepat agar berjalan dengan setiap versi model atau software baru. Sementara itu, pengujian yang berjalan lambat akan terus berjalan di latar belakang.

Memvalidasi Kualitas Model sebelum Ditayangkan

Sebelum mendorong versi model baru ke produksi, uji kedua jenis degradasi kualitas berikut:

  • Degradasi mendadak: Bug dalam versi baru dapat menyebabkan kualitas yang jauh lebih rendah. Validasi versi baru dengan memeriksa kualitasnya pada versi sebelumnya.

  • Degradasi lambat: Pengujian Anda untuk degradasi tiba-tiba mungkin tidak mendeteksi degradasi lambat dalam kualitas model selama beberapa versi. Sebagai gantinya, pastikan prediksi model Anda pada set data validasi memenuhi nilai minimum tetap. Jika set data validasi Anda menyimpang dari data live, perbarui set data validasi dan pastikan model Anda masih memenuhi nilai minimum kualitas yang sama.

Memvalidasi Kompatibilitas Model-Infra sebelum Ditayangkan

Jika model Anda diupdate lebih cepat daripada server, model akan memiliki dependensi software yang berbeda dari server Anda, yang berpotensi menyebabkan ketidaksesuaian. Pastikan operasi yang digunakan oleh model ada di server dengan melakukan staging terhadap model di versi server yang di-sandbox.