Eksperimen

Eksperimen mendorong proyek menuju kelayakan. Ini adalah hipotesis yang dapat diuji dan direproduksi. Saat menjalankan eksperimen, tujuannya adalah untuk melakukan peningkatan inkremental yang berkelanjutan dengan mengevaluasi berbagai arsitektur dan fitur model. Saat bereksperimen, sebaiknya lakukan hal berikut:

  • Menentukan performa dasar pengukuran. Mulailah dengan menetapkan metrik dasar pengukuran. Dasar pengukuran berfungsi sebagai tolok ukur untuk membandingkan eksperimen.

    Dalam beberapa kasus, solusi non-ML saat ini dapat memberikan metrik dasar pengukuran pertama. Jika saat ini tidak ada solusi, buat model ML dengan arsitektur sederhana, beberapa fitur, dan gunakan metriknya sebagai dasar pengukuran.

  • Buat satu perubahan kecil. Hanya buat satu perubahan kecil pada satu waktu, misalnya, pada hyperparameter, arsitektur, atau fitur. Jika perubahan tersebut meningkatkan model, metrik model tersebut akan menjadi dasar pengukuran baru untuk membandingkan eksperimen mendatang.

    Berikut adalah contoh eksperimen yang membuat satu perubahan kecil:

    • menyertakan fitur X.
    • gunakan dropout 0,5 pada lapisan tersembunyi pertama.
    • mengambil transformasi log fitur Y.
    • ubah kecepatan pemelajaran menjadi 0,001.
  • Catat progres eksperimen. Anda kemungkinan besar perlu melakukan banyak eksperimen. Eksperimen dengan kualitas prediksi yang buruk (atau netral) dibandingkan dengan dasar pengukuran masih berguna untuk dilacak. Hal ini menunjukkan pendekatan mana yang tidak akan berhasil. Karena progres biasanya non-linear, penting untuk menunjukkan bahwa Anda sedang menangani masalah dengan menyoroti semua cara yang Anda temukan yang tidak berhasil—selain progres Anda dalam meningkatkan kualitas dasar pengukuran.

Karena setiap pelatihan lengkap pada set data dunia nyata dapat memerlukan waktu berjam-jam (atau berhari-hari), pertimbangkan untuk menjalankan beberapa eksperimen independen secara serentak untuk menjelajahi ruang dengan cepat. Seiring Anda terus melakukan iterasi, Anda akan semakin dekat dengan tingkat kualitas yang diperlukan untuk produksi.

Derau dalam hasil eksperimental

Perhatikan bahwa Anda mungkin mengalami derau dalam hasil eksperimental yang bukan berasal dari perubahan pada model atau data, sehingga sulit untuk menentukan apakah perubahan yang Anda buat benar-benar meningkatkan model. Berikut adalah contoh hal yang dapat menghasilkan derau dalam hasil eksperimen:

  • Pengacakan data: Urutan data yang ditampilkan ke model dapat memengaruhi performa model.

  • Inisialisasi variabel: Cara variabel model diinisialisasi juga dapat memengaruhi performanya.

  • Paralelisme asinkron: Jika model dilatih menggunakan paralelisme asinkron, urutan pembaruan berbagai bagian model juga dapat memengaruhi performanya.

  • Set evaluasi kecil: Jika set evaluasi terlalu kecil, set tersebut mungkin tidak mewakili performa keseluruhan model, sehingga menghasilkan variasi kualitas model yang tidak merata.

Menjalankan eksperimen beberapa kali akan membantu mengonfirmasi hasil eksperimen.

Menyelaraskan praktik eksperimen

Tim Anda harus memiliki pemahaman yang jelas tentang apa sebenarnya "eksperimen", dengan serangkaian praktik dan artefak yang ditentukan. Anda memerlukan dokumentasi yang menjelaskan hal-hal berikut:

  • Artefak. Apa yang dimaksud dengan artefak untuk eksperimen? Pada umumnya, eksperimen adalah hipotesis teruji yang dapat direproduksi, biasanya dengan mencatat metadata (seperti fitur dan hyperparameter) yang menunjukkan perubahan antara eksperimen dan pengaruhnya terhadap kualitas model.

  • Praktik coding. Apakah semua orang akan menggunakan lingkungan eksperimental mereka sendiri? Seberapa mungkin (atau mudah) untuk menyatukan pekerjaan semua orang ke dalam library bersama?

  • Kemampuan reproduksi dan pelacakan. Apa standar untuk reproducibilitas? Misalnya, apakah tim harus menggunakan pipeline data dan praktik pembuatan versi yang sama, atau apakah hanya menampilkan plot saja? Bagaimana data eksperimental akan disimpan: sebagai kueri SQL atau sebagai snapshot model? Di mana log dari setiap eksperimen akan didokumentasikan: dalam dokumen, spreadsheet, atau CMS untuk mengelola eksperimen?

Prediksi salah

Tidak ada model dunia nyata yang sempurna. Bagaimana sistem Anda akan menangani prediksi yang salah? Mulailah memikirkan lebih awal cara menanganinya.

Strategi praktik terbaik mendorong pengguna untuk memberi label yang benar pada prediksi yang salah. Misalnya, aplikasi email menangkap email yang salah diklasifikasikan dengan mencatat email yang dipindahkan pengguna ke folder spam, begitu juga sebaliknya. Dengan mengambil label kebenaran dasar dari pengguna, Anda dapat mendesain loop masukan otomatis untuk pengumpulan data dan pelatihan ulang model.

Perhatikan bahwa meskipun survei yang disematkan di UI mengumpulkan masukan pengguna, data tersebut biasanya bersifat kualitatif dan tidak dapat digabungkan ke dalam data pelatihan ulang.

Mengimplementasikan solusi menyeluruh

Saat tim Anda bereksperimen dengan model, sebaiknya mulai mem-build bagian pipeline akhir (jika Anda memiliki resource untuk melakukannya).

Membuat berbagai bagian pipeline—seperti penyerapan data dan pelatihan ulang model—akan mempermudah pemindahan model akhir ke produksi. Misalnya, mendapatkan pipeline menyeluruh untuk menyerap data dan menayangkan prediksi dapat membantu tim mulai mengintegrasikan model ke dalam produk dan mulai melakukan pengujian pengguna tahap awal.

Memecahkan masalah project yang terhenti

Anda mungkin berada dalam skenario saat progres project terhenti. Mungkin tim Anda telah mengerjakan eksperimen yang menjanjikan, tetapi tidak berhasil meningkatkan model selama berminggu-minggu. Apa yang perlu Anda lakukan? Berikut adalah beberapa kemungkinan pendekatan:

  • Strategis. Anda mungkin perlu membingkai ulang masalah. Setelah menghabiskan waktu dalam fase eksperimen, Anda mungkin lebih memahami masalah, data, dan kemungkinan solusinya. Dengan pengetahuan yang lebih mendalam tentang domain, Anda mungkin dapat membingkai masalah dengan lebih tepat.

    Misalnya, mungkin Anda awalnya ingin menggunakan regresi linear untuk memprediksi nilai numerik. Sayangnya, data tidak cukup baik untuk melatih model regresi linear yang layak. Mungkin analisis lebih lanjut mengungkapkan bahwa masalah dapat diatasi dengan memprediksi apakah contoh berada di atas atau di bawah nilai tertentu. Hal ini memungkinkan Anda menyusun ulang masalah sebagai masalah klasifikasi biner.

    Jika progres lebih lambat dari yang diharapkan, jangan menyerah. Peningkatan inkremental seiring waktu mungkin satu-satunya cara untuk menyelesaikan masalah. Seperti yang telah disebutkan sebelumnya, jangan berharap jumlah progres yang sama dari minggu ke minggu. Sering kali, mendapatkan versi model yang siap produksi memerlukan waktu yang cukup lama. Peningkatan model dapat tidak teratur dan tidak dapat diprediksi. Periode progres yang lambat dapat diikuti dengan lonjakan peningkatan, atau sebaliknya.

  • Teknis. Luangkan waktu untuk mendiagnosis dan menganalisis prediksi yang salah. Dalam beberapa kasus, Anda dapat menemukan masalah dengan mengisolasi beberapa prediksi yang salah dan mendiagnosis perilaku model dalam instance tersebut. Misalnya, Anda mungkin menemukan masalah pada arsitektur atau data. Dalam kasus lain, mendapatkan lebih banyak data dapat membantu. Anda mungkin mendapatkan sinyal yang lebih jelas yang menunjukkan bahwa Anda berada di jalur yang tepat, atau sinyal tersebut mungkin menghasilkan lebih banyak derau, yang menunjukkan adanya masalah lain dalam pendekatan.

    Jika Anda sedang mengerjakan masalah yang memerlukan set data berlabel manual, mendapatkan set data berlabel untuk evaluasi model mungkin sulit diperoleh. Temukan referensi untuk mendapatkan set data yang akan Anda perlukan untuk evaluasi.

Mungkin tidak ada solusi yang dapat dilakukan. Tentukan waktu untuk pendekatan Anda, dan berhentilah jika Anda belum membuat progres dalam jangka waktu tersebut. Namun, jika Anda memiliki pernyataan masalah yang kuat, solusi mungkin diperlukan.

Memeriksa Pemahaman Anda

Seorang anggota tim menemukan kombinasi hyperparameter yang meningkatkan metrik model dasar pengukuran. Apa yang harus dilakukan anggota tim lainnya?
Mengubah semua hyperparameter dalam eksperimen saat ini agar cocok dengan hyperparameter rekan kerjanya.
Mulai buat pipeline menyeluruh yang akan digunakan untuk menerapkan model.
Mungkin menggabungkan satu hyperparameter, tetapi melanjutkan eksperimennya.