Menguji Pipeline dalam Produksi

Selamat! Anda telah men-deploy prediktor tampilan unicorn global. Anda ingin prediktor Anda berjalan 24x7 tanpa hambatan. Anda segera menyadari bahwa Anda perlu memantau pipeline ML Anda. Meskipun memantau semua komponen Anda dapat terasa membingungkan, mari kita lihat persyaratan dan solusinya.

Periksa Skew Penyajian Pelatihan

Kemiringan penayangan pelatihan berarti data input Anda berbeda antara pelatihan dan penayangan. Tabel berikut menjelaskan dua jenis kemiringan yang penting:

Jenis Definisi Contoh Solusi
Kemiringan skema Data input pelatihan dan penayangan tidak sesuai dengan skema yang sama. Format atau distribusi data penayangan berubah saat model Anda terus melatih data lama. Gunakan skema yang sama untuk memvalidasi data pelatihan dan penayangan. Pastikan Anda memeriksa secara terpisah statistik yang tidak diperiksa oleh skema, seperti pecahan nilai yang tidak ada
Kemiringan fitur Data engineer berbeda antara pelatihan dan penayangan. Kode engineering fitur berbeda antara pelatihan dan penayangan, sehingga menghasilkan data engineer yang berbeda. Serupa dengan bias skema, terapkan aturan statistik yang sama di seluruh pelatihan dan penayangan data engineer. Melacak jumlah fitur miring yang terdeteksi, dan rasio contoh miring per fitur.

Memantau Model Usia Pipa

Jika data penayangan berkembang seiring waktu tetapi model Anda tidak dilatih ulang secara berkala, Anda akan melihat penurunan kualitas model. Melacak waktu sejak model dilatih ulang pada data baru dan menetapkan usia batas untuk pemberitahuan. Selain memantau usia model saat ditayangkan, Anda harus memantau usia model di seluruh pipeline untuk menemukan kios pipeline.

Menguji apakah Bobot dan Output Model Stabil Secara Numerik

Selama pelatihan model, bobot dan output lapisan tidak boleh berupa NaN atau Inf. Tulis pengujian untuk memeriksa nilai NaN dan Inf bobot dan lapisan output Anda. Selain itu, uji bahwa lebih dari setengah output lapisan bukan nol.

Memantau Performa Model

Prediktor tampilan unicorn Anda lebih populer dari yang diharapkan! Anda mendapatkan banyak permintaan prediksi dan bahkan lebih banyak data pelatihan. Anda pikir itu bagus hingga Anda menyadari bahwa model Anda menggunakan lebih banyak memori dan waktu untuk berlatih. Anda memutuskan untuk memantau performa model dengan mengikuti langkah-langkah berikut:

  • Melacak performa model berdasarkan versi kode, model, dan data. Pelacakan tersebut memungkinkan Anda menentukan penyebab yang tepat untuk penurunan performa.
  • Uji langkah pelatihan per detik untuk versi model baru terhadap versi sebelumnya dan terhadap nilai minimum tetap.
  • Menangkap kebocoran memori dengan menetapkan ambang batas untuk penggunaan memori.
  • Memantau waktu respons API dan melacak persentilnya. Meskipun waktu respons API mungkin di luar kendali Anda, respons yang lambat berpotensi menyebabkan metrik dunia nyata yang buruk.
  • Pantau jumlah kueri yang dijawab per detik.

Uji Kualitas Model Live pada Data yang Ditayangkan

Anda telah memvalidasi model Anda. Namun, bagaimana jika skenario dunia nyata, seperti perilaku unicorn, berubah setelah merekam data validasi Anda? Kemudian, kualitas model yang Anda tayangkan akan menurun. Namun, menguji kualitas penayangan tidaklah mudah karena data dunia nyata tidak selalu diberi label. Jika data penayangan Anda tidak diberi label, pertimbangkan pengujian berikut:

  • Membuat label menggunakan penilai manusia.

  • Menyelidiki model yang menunjukkan bias statistik yang signifikan dalam prediksi. Lihat Klasifikasi: Bias Prediksi.

  • Melacak metrik dunia nyata untuk model Anda. Misalnya, jika Anda mengklasifikasikan spam, bandingkan prediksi Anda dengan spam yang dilaporkan pengguna.

  • Mengurangi potensi perbedaan antara pelatihan dan penayangan data dengan menayangkan versi model baru pada sebagian kecil kueri Anda. Saat Anda memvalidasi model penayangan baru, ganti semua kueri secara bertahap ke versi baru.

Saat menggunakan pengujian ini, jangan lupa untuk memantau degradasi tiba-tiba dan lambat dalam kualitas prediksi.