Sistem ML produksi: Kapan harus mengubah data?

Data mentah harus direkayasa (ditransformasi). Kapan Anda harus melakukan transformasi sebaliknya, atau terutama data hanya-baca? Secara garis besar, Anda dapat melakukan rekayasa fitur menggunakan salah satu dua periode berikut:

  • Sebelum melatih model.
  • Saat melatih model.

Mentransformasi data sebelum pelatihan

Dalam pendekatan ini, Anda mengikuti dua langkah:

  1. Menulis kode atau menggunakan alat khusus untuk mengubah data mentah.
  2. Simpan data yang telah diubah di tempat yang dapat diserap model, seperti seperti pada disk.

Kelebihan

  • Sistem hanya mengubah data mentah satu kali.
  • Sistem dapat menganalisis seluruh {i>dataset<i} untuk menentukan strategi transformasi.

Kekurangan

Diferensiasi performa pelatihan dan penayangan akan lebih berbahaya jika sistem menjalankan inferensi (online). Pada sistem yang menggunakan inferensi dinamis, perangkat lunak yang mengubah {i>dataset<i} mentah biasanya berbeda dari perangkat lunak yang melayani prediksi, yang dapat menyebabkan distorsi penayangan pelatihan. Sebaliknya, sistem yang menggunakan inferensi statis (offline) terkadang dapat menggunakan perangkat lunak yang sama.

Mentransformasi data saat pelatihan

Dalam pendekatan ini, transformasi adalah bagian dari kode model. Model menyerap data mentah dan mengubahnya.

Kelebihan

  • Anda masih dapat menggunakan file data mentah yang sama jika mengubah transformasi.
  • Anda dipastikan melakukan transformasi yang sama pada waktu pelatihan dan prediksi.

Kekurangan

  • Transformasi yang rumit dapat meningkatkan latensi model.
  • Transformasi terjadi untuk setiap batch.

Mentransformasi data per batch bisa jadi sulit. Misalnya, Anda ingin menggunakan normalisasi skor Z untuk mengubah data numerik mentah. Normalisasi skor Z memerlukan nilai rata-rata dan standar deviasi fitur. Namun, transformasi per batch berarti Anda hanya akan memiliki akses ke satu batch data, bukan set data lengkap. Jadi, jika batch itu sangat varian, skor Z, misalnya, -2,5 dalam satu batch tidak akan memiliki arti yang sama sebagai -2,5 di batch lain. Sebagai solusinya, sistem Anda dapat melakukan prakomputasi terhadap rata-rata dan deviasi standar di seluruh set data, lalu menggunakannya sebagai konstanta dalam model.