Sistem ML produksi: Kapan harus mengubah data?

Data mentah harus dirancang fitur (ditransformasi). Kapan Anda harus mengubah data? Secara umum, Anda dapat melakukan rekayasa fitur selama salah satu dari dua periode berikut:

  • Sebelum melatih model.
  • Saat melatih model.

Mentransformasi data sebelum pelatihan

Dalam pendekatan ini, Anda mengikuti dua langkah:

  1. Tulis kode atau gunakan alat khusus untuk mengubah data mentah.
  2. Simpan data yang telah ditransformasi di tempat yang dapat ditransfer oleh model, seperti di disk.

Kelebihan

  • Sistem mengubah data mentah hanya sekali.
  • Sistem dapat menganalisis seluruh set data untuk menentukan strategi transformasi terbaik.

Kekurangan

Skew penayangan pelatihan lebih berbahaya saat sistem Anda melakukan inferensi (online) dinamis. Pada sistem yang menggunakan inferensi dinamis, software yang mengubah set data mentah biasanya berbeda dengan software yang menayangkan prediksi, yang dapat menyebabkan diferensiasi performa pelatihan dan penayangan. Sebaliknya, sistem yang menggunakan inferensi statis (offline) terkadang dapat menggunakan software yang sama.

Mentransformasi data saat pelatihan

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

Kelebihan

  • Anda tetap dapat menggunakan file data mentah yang sama jika mengubah transformasi.
  • Anda dijamin mendapatkan transformasi yang sama pada waktu pelatihan dan prediksi.

Kekurangan

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

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