Ringkasan pemantauan model

Dokumen ini menjelaskan cara BigQuery ML mendukung pemantauan model machine learning (ML) melalui evaluasi dan perbandingan data yang digunakan model. Hal ini mencakup membandingkan data inferensi model dengan data pelatihannya,dan membandingkan data inferensi baru dengan data inferensi yang digunakan sebelumnya.

Memahami data yang digunakan oleh model Anda adalah aspek penting dari ML, karena data ini memengaruhi performa model. Memahami varian apa pun antara data pelatihan dan penayangan sangat penting untuk memastikan bahwa model Anda tetap akurat dari waktu ke waktu. Model memiliki performa terbaik dalam menayangkan data yang mirip dengan data pelatihan. Jika data penayangan menyimpang dari data yang digunakan untuk melatih model, performa model dapat menurun, meskipun model itu sendiri belum berubah.

BigQuery ML menyediakan fungsi untuk membantu Anda menganalisis data pelatihan dan penayangan untuk kemiringan data dan drift data:

  • Diferensiasi data terjadi saat distribusi nilai fitur untuk data pelatihan berbeda secara signifikan dengan data penayangan dalam produksi. Statistik pelatihan untuk model disimpan selama pelatihan model, sehingga data pelatihan asli tidak diperlukan agar Anda dapat menggunakan deteksi skew.
  • Penyimpangan data terjadi saat distribusi data fitur dalam produksi berubah secara signifikan dari waktu ke waktu. Deteksi drift didukung untuk rentang data berturut-turut, misalnya, antara hari yang berbeda untuk menayangkan data. Hal ini memungkinkan Anda mendapatkan notifikasi jika data penayangan berubah dari waktu ke waktu, sebelum set data terlalu menyimpang untuk melatih ulang model.

Gunakan fungsi berikut untuk memantau model di BigQuery ML:

  • ML.DESCRIBE_DATA: menghitung statistik deskriptif untuk kumpulan data pelatihan atau penayangan.
  • ML.VALIDATE_DATA_SKEW: menghitung statistik untuk kumpulan data penayangan, lalu membandingkannya dengan statistik data pelatihan yang dihitung saat model BigQuery ML dilatih, untuk mengidentifikasi perbedaan anomali antara kedua set data. Statistik hanya dihitung untuk kolom fitur dalam data penyaluran yang cocok dengan kolom fitur dalam data pelatihan, untuk mencapai performa yang lebih baik dan biaya yang lebih rendah.
  • ML.VALIDATE_DATA_DRIFT: menghitung dan membandingkan statistik untuk dua kumpulan data penayangan guna mengidentifikasi perbedaan anomali antara kedua set data.
  • ML.TFDV_DESCRIBE: menghitung statistik deskriptif yang terperinci untuk sekumpulan data pelatihan atau penayangan. Fungsi ini memberikan perilaku yang sama dengan TensorFlow tfdv.generate_statistics_from_csv API.
  • ML.TFDV_VALIDATE: membandingkan statistik untuk statistik data pelatihan dan penayangan, atau dua kumpulan statistik data penayangan, untuk mengidentifikasi perbedaan anomali antara kedua set data. Fungsi ini memberikan perilaku yang sama dengan TensorFlow validate_statistics API.

Kasus penggunaan pemantauan

Bagian ini menjelaskan cara menggunakan fungsi pemantauan model BigQuery ML dalam kasus penggunaan pemantauan umum.

Pemantauan diferensiasi data dasar

Kasus penggunaan ini sesuai jika Anda ingin mengembangkan dan memantau model untuk kemiringan data dengan cepat dan tidak memerlukan statistik kemiringan terperinci untuk berintegrasi dengan solusi pemantauan yang ada.

Langkah-langkah umum untuk kasus penggunaan ini adalah sebagai berikut:

  1. Jalankan fungsi ML.DESCRIBE_DATA pada data pelatihan dan penayangan, untuk memastikan kedua set data tersebut dibandingkan dengan benar satu sama lain dan berada dalam parameter yang diharapkan.
  2. Buat model BigQuery ML dan latih model tersebut pada data pelatihan.
  3. Jalankan fungsi ML.VALIDATE_DATA_SKEW untuk membandingkan statistik data penayangan dengan statistik data pelatihan yang dihitung selama pembuatan model untuk melihat apakah ada kemiringan data.
  4. Jika ada penyimpangan data, selidiki akar masalahnya, sesuaikan data pelatihan, lalu latih ulang model.

Pemantauan penyimpangan data dasar

Kasus penggunaan ini sesuai jika Anda ingin mengembangkan dan memantau model untuk drift data dengan cepat dan tidak memerlukan statistik drift terperinci untuk berintegrasi dengan solusi pemantauan yang ada.

Langkah-langkah umum untuk kasus penggunaan ini adalah sebagai berikut:

  1. Jalankan fungsi ML.DESCRIBE_DATA pada data pelatihan dan penayangan untuk memastikan kedua set data tersebut dibandingkan dengan benar satu sama lain dan berada dalam parameter yang diharapkan.
  2. Buat model BigQuery ML dan latih model tersebut pada data pelatihan.
  3. Jalankan fungsi ML.VALIDATE_DATA_DRIFT untuk membandingkan statistik untuk dua set data penayangan yang berbeda guna melihat apakah ada penyimpangan data. Misalnya, Anda mungkin ingin membandingkan data penayangan saat ini dengan data penayangan historis dari snapshot tabel, atau dengan fitur yang ditayangkan pada waktu tertentu, yang dapat Anda dapatkan dengan menggunakan fungsi ML.FEATURES_AT_TIME.
  4. Jika ada penyimpangan data, selidiki akar masalahnya, sesuaikan data pelatihan, lalu latih ulang model.

Pemantauan kemiringan atau penyimpangan data lanjutan

Kasus penggunaan ini sesuai jika Anda ingin statistik penyimpangan atau penyimpangan terperinci terintegrasi dengan solusi pemantauan yang ada atau untuk tujuan lainnya.

Langkah-langkah umum untuk kasus penggunaan ini adalah sebagai berikut:

  1. Jalankan fungsi ML.TFDV_DESCRIBE pada data pelatihan dan penayangan dengan interval yang sesuai dengan solusi pemantauan Anda, dan simpan hasil kueri. Langkah ini memungkinkan Anda membandingkan data penayangan mendatang dengan data pelatihan dan penayangan dari titik waktu terdahulu.
  2. Jalankan fungsi ML.TFDV_VALIDATE pada statistik data pelatihan dan penayangan, atau pada dua kumpulan statistik data penayangan, untuk mengevaluasi kemiringan data atau penyimpangan fitur. Data pelatihan dan penayangan harus disediakan sebagai buffer protokol DatasetFeatureStatisticsList TensorFlow dalam format JSON. Anda dapat membuat buffering protokol dalam format yang benar dengan menjalankan fungsi ML.TFDV_DESCRIBE, atau Anda dapat memuatnya dari luar BigQuery. Contoh berikut menunjukkan cara mengevaluasi skew fitur:

    DECLARE stats1 JSON;
    DECLARE stats2 JSON;
    
    SET stats1 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`)
    );
    SET stats2 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.serving`)
    );
    
    SELECT ML.TFDV_VALIDATE(stats1, stats2, 'SKEW');
    
    INSERT `myproject.mydataset.serve_stats`
      (t, dataset_feature_statistics_list)
    SELECT CURRENT_TIMESTAMP() AS t, stats1;
  3. Jika ada penyimpangan data atau penyimpangan data, selidiki akar masalahnya, sesuaikan data pelatihan dengan tepat, lalu latih ulang model.

Otomatisasi pemantauan

Anda dapat mengotomatiskan pemantauan menggunakan kueri terjadwal untuk menjalankan fungsi pemantauan, mengevaluasi output, dan melatih ulang model jika anomali terdeteksi. Anda harus mengaktifkan notifikasi email sebagai bagian dari menyiapkan kueri terjadwal.

Untuk contoh yang menunjukkan cara mengotomatiskan fungsi ML.VALIDATE_DATA_SKEW, lihat Mengotomatiskan deteksi kemiringan.