Sistem ML Produksi: Dependensi Data.

Data merupakan hal penting bagi developer ML, sebagaimana kode bagi pemrogram tradisional. Pelajaran ini berfokus pada jenis pertanyaan yang harus Anda tanyakan terkait data Anda.

Dependensi Data

  • Data masukan (fitur) menentukan perilaku sistem ML.
    • Kita menulis pengujian unit untuk library software, tetapi bagaimana dengan datanya?
  • Perlu berhati-hati saat memilih sinyal masukan.
    • Bahkan mungkin perlu lebih berhati-hati dibandingkan saat menentukan dependensi library software?
  • Keandalan
    • Apa yang terjadi jika sinyal tidak tersedia? Akankah Anda mengetahuinya?
  • Keandalan
    • Apa yang terjadi jika sinyal tidak tersedia? Akankah Anda mengetahuinya?
  • Pembuatan versi
    • Apakah sistem yang menghitung sinyal ini pernah berubah? Seberapa sering? Apa yang akan terjadi?
  • Keandalan
    • Apa yang terjadi jika sinyal tidak tersedia? Akankah Anda mengetahuinya?
  • Pembuatan versi
    • Apakah sistem yang menghitung sinyal ini pernah berubah? Seberapa sering? Apa yang akan terjadi?
  • Kebutuhan
    • Apakah kegunaan sinyal setara dengan biaya yang dikeluarkan untuk menyertakan sinyal tersebut?
  • Korelasi
    • Apakah ada sinyal masukan saya yang terkait begitu erat sehingga perlu strategi tambahan untuk memisahkannya?
  • Korelasi
    • Apakah ada sinyal masukan saya yang terkait begitu erat sehingga perlu strategi tambahan untuk memisahkannya?
  • Feedback Loop
    • Manakah dari sinyal masukan saya yang mungkin terpengaruh oleh keluaran model saya?

Perilaku sistem ML bergantung pada perilaku dan kualitas fitur masukannya. Karena data masukan untuk fitur tersebut berubah, begitu juga yang terjadi dengan model Anda. Terkadang perubahan itu diinginkan, tetapi terkadang tidak.

Dalam pengembangan software tradisional, Anda lebih berfokus pada kode dibandingkan data. Dalam pengembangan machine learning, meskipun coding masih menjadi bagian dari pekerjaan, Anda juga harus berfokus pada data. Misalnya, pada project pengembangan software tradisional, sebaiknya tulis pengujian unit untuk memvalidasi kode Anda. Pada project ML, Anda juga harus terus menguji, memverifikasi, dan memantau data masukan.

Misalnya, Anda harus terus memantau model untuk menghapus fitur yang tidak digunakan (atau tidak terlalu digunakan). Bayangkan jika ada fitur tertentu yang tidak atau sedikit berkontribusi untuk model. Jika data masukan untuk fitur tersebut tiba-tiba berubah, perilaku model Anda mungkin juga tiba-tiba berubah dengan cara yang tidak diinginkan.

Keandalan

Beberapa pertanyaan yang harus diajukan terkait keandalan data masukan:

  • Apakah sinyal akan selalu tersedia atau berasal dari sumber yang tidak dapat diandalkan? Misalnya:
  • Apakah sinyal berasal dari server yang tidak bekerja kalau ada beban berat?
  • Apakah sinyal berasal dari manusia yang pergi berlibur setiap bulan Agustus?

Pembuatan versi

Beberapa pertanyaan yang harus diajukan terkait pembuatan versi:

  • Apakah sistem yang menghitung data ini pernah berubah? Jika ya:
  • Seberapa sering?
  • Bagaimana Anda akan tahu saat sistem tersebut berubah?

Terkadang, data berasal dari proses lain yang menjadi sumber. Jika proses tersebut berubah secara tiba-tiba, model Anda dapat terkena dampaknya.

Pertimbangkan untuk membuat salinan dari data yang Anda terima dari proses upstream. Kemudian, hanya lanjutkan ke data upstream versi berikutnya jika Anda yakin bahwa tindakan tersebut aman untuk dilakukan.

Kebutuhan

Pertanyaan berikut mungkin mengingatkan Anda tentang regularisasi:

  • Apakah kegunaan fitur setara dengan biaya yang dikeluarkan untuk menyertakan fiitur tersebut?

Menambahkan lebih banyak fitur ke model merupakan hal yang selalu ingin dilakukan. Misalnya, Anda menemukan fitur baru yang penambahannya akan membuat model Anda sedikit lebih akurat. Lebih akurat pasti terdengar lebih baik daripada kurang akurat. Namun, hal tersebut dapat menambah beban pemeliharaan Anda. Fitur tersebut dapat berkurang performanya secara tidak terduga, jadi Anda harus memantaunya Pertimbangkan dengan saksama sebelum menambahkan fitur yang memberikan sedikit manfaat dalam jangka pendek.

Korelasi

Beberapa fitur berkorelasi (positif atau negatif) dengan fitur lainnya. Tanyakan pada diri Anda pertanyaan berikut:

  • Apakah ada fitur yang terkait begitu erat sehingga perlu strategi tambahan untuk memisahkannya?

Feedback Loop

Terkadang sebuah model dapat memengaruhi data pelatihannya sendiri. Misalnya, hasil dari beberapa model secara langsung atau tidak langsung merupakan fitur masukan terhadap model yang sama tersebut.

Terkadang sebuah model dapat memengaruhi model lain. Misalnya, pertimbangkan dua model untuk memprediksi harga saham:

  • Model A, yang merupakan model prediktif yang buruk.
  • Model B.

Karena Model A memiliki bug, model ini salah memberikan keputusan untuk membeli saham di Saham X. Pembelian tersebut mendorong harga Saham X. Model B menggunakan harga Saham X sebagai fitur masukan, sehingga Model B dapat dengan mudah menghasilkan beberapa kesimpulan yang salah terkait nilai saham dari Saham X. Oleh sebab itu, Model B dapat membeli atau menjual saham dari Saham X berdasarkan perilaku bug dari Model A. Karena itu, perilaku Model B dapat memengaruhi Model A, kemungkinan memicu tulip mania atau pergeseran dalam saham Perusahaan X