Membingkai masalah ML

Setelah memverifikasi bahwa masalah Anda dapat diselesaikan dengan baik menggunakan ML prediktif atau pendekatan AI generatif, Anda siap untuk membingkai masalah Anda dalam istilah ML. Anda membingkai masalah dalam istilah ML dengan menyelesaikan tugas berikut:

  • Tentukan hasil ideal dan sasaran model.
  • Identifikasi output model.
  • Tentukan metrik keberhasilan.

Menentukan hasil ideal dan tujuan model

Terlepas dari model ML, apa hasil yang ideal? Dengan kata lain, tugas apa yang sebenarnya Anda inginkan untuk dilakukan oleh produk atau fitur Anda? Pernyataan ini sama dengan yang Anda tentukan sebelumnya di bagian Nyatakan tujuan.

Hubungkan sasaran model ke hasil ideal dengan menentukan tindakan yang Anda inginkan untuk dilakukan model. Tabel berikut menyatakan hasil yang ideal dan sasaran model untuk aplikasi fiktif:

Aplikasi Hasil ideal Sasaran model
Aplikasi Cuaca Menghitung presipitasi dalam penambahan enam jam untuk suatu wilayah geografis. Memprediksi jumlah presipitasi selama enam jam untuk wilayah geografis tertentu.
Aplikasi mode Membuat berbagai desain kemeja. Hasilkan tiga jenis desain kemeja dari teks dan gambar, dengan teks tersebut menyatakan gaya dan warna, sedangkan gambar adalah jenis kemeja (kaos, berkancing, polo).
Aplikasi video Merekomendasikan video yang berguna. Memprediksi apakah pengguna akan mengklik video atau tidak.
Aplikasi email Mendeteksi spam. Memprediksi apakah suatu email adalah spam atau bukan.
Aplikasi keuangan Meringkas informasi keuangan dari berbagai sumber berita. Hasilkan ringkasan 50 kata tentang tren keuangan utama dari tujuh hari sebelumnya.
Aplikasi peta Menghitung waktu perjalanan. Memprediksi lamanya waktu yang dibutuhkan untuk melakukan perjalanan di antara dua titik.
Aplikasi perbankan Identifikasi transaksi penipuan. Memprediksi apakah transaksi dilakukan oleh pemegang kartu.
Aplikasi Tempat Makan Mengidentifikasi masakan berdasarkan menu di restoran. Memprediksi jenis restoran.
Aplikasi E-commerce Membuat balasan dukungan pelanggan tentang produk perusahaan. Hasilkan balasan menggunakan analisis sentimen dan basis pengetahuan organisasi.

Mengidentifikasi output yang Anda perlukan

Pilihan jenis model bergantung pada konteks dan batasan spesifik masalah Anda. Output model harus menyelesaikan tugas yang ditentukan dalam hasil ideal. Jadi, pertanyaan pertama yang harus dijawab adalah "Jenis {i>output<i} apa yang saya butuhkan untuk menyelesaikan masalah?"

Jika Anda perlu mengklasifikasikan sesuatu atau membuat prediksi numerik, Anda mungkin dapat menggunakan ML prediktif. Jika perlu membuat konten baru atau memproduksi output yang terkait dengan natural language understanding, Anda mungkin akan menggunakan AI generatif.

Tabel berikut mencantumkan ML prediktif dan output AI generatif:

Tabel 1. ML Prediktif
Sistem ML Contoh output
Klasifikasi Biner Mengklasifikasikan email sebagai spam atau bukan spam.
Label tunggal multiclass Mengklasifikasikan hewan dalam gambar.
Multi-label multi-class Mengklasifikasikan semua hewan dalam gambar.
Numerik Regresi unidimensi Memprediksi jumlah penayangan yang akan diperoleh video.
Regresi multidimensi Memprediksi tekanan darah, detak jantung, dan kadar kolesterol untuk individu.
Tabel 2. AI Generatif
Jenis model Contoh output
Teks
Merangkum artikel.

Membalas ulasan pelanggan.

Menerjemahkan dokumen dari bahasa Inggris ke bahasa Mandarin.

Tulis deskripsi produk.

Menganalisis dokumen hukum.
Gambar
Membuat gambar pemasaran.

Menerapkan efek visual ke foto.

Membuat variasi desain produk.
Audio
Buat dialog dalam aksen tertentu.

Buat komposisi musik singkat dalam genre tertentu, seperti jazz.
Video
Buat video yang tampak realistis.

Menganalisis rekaman video dan menerapkan efek visual.
Multimodal Buat berbagai jenis output, seperti video dengan teks keterangan.

Klasifikasi

Model klasifikasi memprediksi kategori data input, misalnya, apakah input harus diklasifikasikan sebagai A, B, atau C.

Model klasifikasi sedang membuat prediksi.

Gambar 1. Model klasifikasi yang membuat prediksi.

Berdasarkan prediksi model, aplikasi Anda dapat membuat keputusan. Misalnya, jika prediksinya adalah kategori A, lakukan X; jika prediksinya adalah kategori B, maka lakukan, Y; jika prediksinya adalah kategori C, maka lakukan Z. Dalam beberapa kasus, prediksi adalah output aplikasi.

Kode produk menggunakan output model untuk membuat keputusan.

Gambar 2. Output model klasifikasi yang digunakan dalam kode produk untuk membuat keputusan.

Regresi

Model regresi memprediksi nilai numerik.

Model regresi sedang membuat prediksi.

Gambar 3. Model regresi yang membuat prediksi numerik.

Berdasarkan prediksi model, aplikasi Anda dapat membuat keputusan. Misalnya, jika prediksi berada dalam rentang A, lakukan X; jika prediksi berada dalam rentang B, lakukan Y; jika prediksi berada dalam rentang C, lakukan Z. Dalam beberapa kasus, prediksi adalah output aplikasi.

Kode produk menggunakan output model untuk membuat keputusan.

Gambar 4. Output model regresi yang digunakan dalam kode produk untuk membuat keputusan.

Pertimbangkan skenario berikut:

Anda ingin menyimpan video ke dalam cache berdasarkan prediksi popularitasnya. Dengan kata lain, jika model Anda memprediksi bahwa suatu video akan populer, Anda ingin segera menayangkannya kepada pengguna. Untuk melakukannya, gunakan cache yang lebih efektif dan mahal. Untuk video lainnya, Anda akan menggunakan cache yang berbeda. Kriteria penyimpanan cache Anda adalah sebagai berikut:

  • Jika video diprediksi akan mendapatkan 50 penayangan atau lebih, Anda harus menggunakan cache yang mahal.
  • Jika video diprediksi akan mendapatkan antara 30 dan 50 penayangan, sebaiknya gunakan cache murah.
  • Jika video diprediksi akan mendapatkan kurang dari 30 penayangan, video tersebut tidak akan di-cache.

Anda pikir model regresi adalah pendekatan yang tepat karena Anda akan memprediksi nilai numerik—jumlah tampilan. Namun, saat melatih model regresi, Anda menyadari bahwa model tersebut menghasilkan kerugian yang sama untuk prediksi 28 dan 32 untuk video yang memiliki 30 penayangan. Dengan kata lain, meskipun aplikasi Anda akan memiliki perilaku yang sangat berbeda jika prediksinya adalah 28 versus 32, model ini menganggap kedua prediksi tersebut sama-sama bagusnya.

Model yang sedang dilatih dan kerugiannya dievaluasi.

Gambar 5. Melatih model regresi.

Model regresi tidak mengetahui nilai minimum yang ditentukan produk. Oleh karena itu, jika perilaku aplikasi Anda berubah secara signifikan karena perbedaan kecil dalam prediksi model regresi, sebaiknya terapkan model klasifikasi.

Dalam skenario ini, model klasifikasi akan menghasilkan perilaku yang benar karena model klasifikasi akan menghasilkan kerugian yang lebih tinggi untuk prediksi 28 daripada 32. Dalam artian, model klasifikasi menghasilkan nilai minimum secara default.

Skenario ini menyoroti dua poin penting:

  • Memprediksi keputusan. Jika memungkinkan, prediksi keputusan yang akan diambil aplikasi Anda. Dalam contoh video, model klasifikasi akan memprediksi keputusan apakah kategori yang mengklasifikasikan video adalah "tanpa cache", "cache murah", dan "cache mahal". Menyembunyikan perilaku aplikasi dari model dapat menyebabkan aplikasi menghasilkan perilaku yang salah.

  • Pahami batasan masalahnya. Jika aplikasi Anda melakukan tindakan yang berbeda berdasarkan nilai minimum yang berbeda, tentukan apakah nilai minimum tersebut tetap atau dinamis.

    • Batas dinamis: Jika nilai minimum dinamis, gunakan model regresi dan tetapkan batas dalam kode aplikasi Anda. Hal ini memungkinkan Anda untuk dengan mudah memperbarui batas sambil tetap meminta model untuk membuat prediksi yang wajar.
    • Batas tetap: Jika nilai minimum bersifat tetap, gunakan model klasifikasi dan beri label set data Anda berdasarkan batas nilai minimum tersebut.

    Secara umum, sebagian besar penyediaan cache bersifat dinamis dan batasnya berubah dari waktu ke waktu. Oleh karena itu, karena ini secara khusus merupakan masalah caching, model regresi adalah pilihan terbaik. Namun, untuk banyak masalah, nilai minimum akan diperbaiki, sehingga model klasifikasi menjadi solusi terbaik.

Mari kita lihat contoh lainnya. Jika Anda sedang mem-build aplikasi cuaca yang hasil idealnya adalah memberi tahu pengguna seberapa banyak hujan dalam enam jam ke depan, Anda dapat menggunakan model regresi yang memprediksi label precipitation_amount.

Hasil ideal Label ideal
Beri tahu pengguna seberapa banyak hujan akan turun di daerah mereka dalam enam jam ke depan. precipitation_amount

Dalam contoh aplikasi cuaca, labelnya langsung membahas hasil yang ideal. Namun, dalam beberapa kasus, hubungan one-to-one tidak terlihat jelas antara hasil ideal dan label. Misalnya, di aplikasi video, hasil yang ideal adalah merekomendasikan video yang berguna. Namun, tidak ada label dalam set data yang disebut useful_to_user.

Hasil ideal Label ideal
Merekomendasikan video yang berguna. ?

Oleh karena itu, Anda harus menemukan label proxy.

Label proxy

Label proxy menggantikan label yang tidak ada dalam set data. Label proxy diperlukan ketika Anda tidak dapat secara langsung mengukur apa yang ingin Anda prediksi. Di aplikasi video, kita tidak dapat secara langsung mengukur apakah pengguna menganggap suatu video berguna atau tidak. Akan lebih baik jika set data memiliki fitur useful, dan pengguna menandai semua video yang mereka anggap berguna. Namun, karena set data tidak demikian, kita memerlukan label proxy yang akan menggantikan kegunaan.

Label proxy untuk kegunaan mungkin menunjukkan apakah pengguna akan membagikan atau menyukai video tersebut.

Hasil ideal Label proxy
Merekomendasikan video yang berguna. shared OR liked

Berhati-hatilah dengan label proxy karena label tersebut tidak secara langsung mengukur apa yang ingin Anda prediksi. Misalnya, tabel berikut menguraikan masalah terkait label proxy potensial untuk Merekomendasikan video yang berguna:

Label proxy Masalah
Memprediksi apakah pengguna akan mengklik tombol “suka”. Mayoritas pengguna tidak pernah mengklik "suka".
Memprediksi apakah suatu video akan populer. Tidak dipersonalisasi. Beberapa pengguna mungkin tidak menyukai video populer.
Memprediksi apakah pengguna akan membagikan video atau tidak. Beberapa pengguna tidak membagikan video. Terkadang, orang membagikan video karena mereka tidak menyukainya.
Memprediksi apakah pengguna akan mengklik putar. Memaksimalkan clickbait.
Memprediksi durasi menonton video. Mendukung video berdurasi panjang secara berbeda daripada video singkat.
Memprediksi berapa kali pengguna akan menonton ulang video tersebut. Memilih video yang "dapat ditonton ulang" daripada genre video yang tidak dapat ditonton ulang.

Tidak ada label {i>proxy<i} yang bisa menjadi pengganti sempurna untuk hasil ideal Anda. Semuanya akan memiliki potensi masalah. Pilih salah satu yang memiliki paling sedikit masalah untuk kasus penggunaan Anda.

Memeriksa Pemahaman Anda

Sebuah perusahaan ingin menggunakan ML di aplikasi kesehatan dan kesejahteraan mereka untuk membantu orang merasa lebih baik. Apakah menurut Anda mereka perlu menggunakan label proxy untuk mencapai tujuannya?
Ya, perusahaan tersebut perlu menemukan label {i>proxy<i}. Kategori seperti kebahagiaan dan kesejahteraan tidak dapat diukur secara langsung. Sebaliknya, mereka perlu dikira-kira sehubungan dengan beberapa fitur lainnya, seperti jam yang dihabiskan untuk berolahraga per minggu, atau waktu yang dihabiskan untuk hobi atau dengan teman.
Tidak, perusahaan tidak perlu menggunakan label {i>proxy<i}. Kepuasan dan kesejahteraan dapat diukur secara langsung.

Generasi

Dalam sebagian besar kasus, Anda tidak akan melatih model generatif sendiri karena memerlukan data pelatihan dan resource komputasi dalam jumlah besar. Sebagai gantinya, Anda akan menyesuaikan model generatif terlatih. Agar model generatif untuk menghasilkan output yang diinginkan, Anda mungkin perlu menggunakan satu atau beberapa teknik berikut:

  • Distilasi. Untuk membuat versi yang lebih kecil dari model yang lebih besar, Anda harus membuat set data berlabel sintetis dari model yang lebih besar yang Anda gunakan untuk melatih model yang lebih kecil. Model generatif biasanya berukuran sangat besar dan mengonsumsi sumber daya yang besar (seperti memori dan listrik). Distilasi memungkinkan model yang lebih kecil dan tidak memerlukan banyak resource untuk memperkirakan performa model yang lebih besar.

  • Penyesuaian parameter atau penyelarasan hemat parameter. Untuk meningkatkan performa model pada tugas tertentu, Anda perlu melatih model lebih lanjut pada set data yang berisi contoh jenis output yang ingin dihasilkan.

  • Prompt Engineering. Agar model dapat menjalankan tugas tertentu atau menghasilkan output dalam format tertentu, beri tahu model tugas yang Anda inginkan atau jelaskan bagaimana Anda ingin output itu diformat. Dengan kata lain, perintah dapat menyertakan petunjuk natural language tentang cara melakukan tugas atau contoh ilustratif dengan output yang diinginkan.

    Misalnya, jika ingin ringkasan singkat artikel, Anda dapat memasukkan hal berikut:

    Produce 100-word summaries for each article.
    

    Jika ingin model menghasilkan teks untuk tingkat pembacaan tertentu, Anda dapat memasukkan hal berikut:

    All the output should be at a reading level for a 12-year-old.
    

    Jika Anda ingin model memberikan outputnya dalam format tertentu, Anda dapat menjelaskan bagaimana output harus diformat—misalnya, "memformat hasil dalam tabel"—atau Anda dapat mendemonstrasikan tugas dengan memberikan contoh. Misalnya, Anda dapat memasukkan hal berikut:

    Translate words from English to Spanish.
    
    English: Car
    Spanish: Auto
    
    English: Airplane
    Spanish: Avión
    
    English: Home
    Spanish:______
    

Distilasi dan penyempurnaan kualitas akan memperbarui parameter model. Prompt Engineering tidak memperbarui parameter model. Sebagai gantinya, Prompt Engineering membantu model mempelajari cara menghasilkan output yang diinginkan dari konteks prompt.

Dalam beberapa kasus, Anda juga memerlukan set data pengujian untuk mengevaluasi output model generatif berdasarkan nilai yang diketahui, misalnya, memeriksa apakah ringkasan model serupa dengan ringkasan buatan manusia, atau apakah manusia menilai ringkasan model sebagai baik.

AI generatif juga dapat digunakan untuk menerapkan solusi ML prediktif, seperti klasifikasi atau regresi. Misalnya, karena pengetahuannya yang mendalam tentang natural language, model bahasa besar (LLM) sering kali dapat menjalankan tugas klasifikasi teks dengan lebih baik daripada ML prediktif yang dilatih untuk tugas tertentu.

Menentukan metrik keberhasilan

Tentukan metrik yang akan Anda gunakan untuk menentukan apakah implementasi ML berhasil atau tidak. Metrik kesuksesan menentukan hal yang penting bagi Anda, seperti interaksi atau membantu pengguna mengambil tindakan yang sesuai, seperti menonton video yang menurut mereka bermanfaat. Metrik keberhasilan berbeda dengan metrik evaluasi model, seperti akurasi, presisi, perolehan, atau AUC.

Misalnya, metrik keberhasilan dan kegagalan aplikasi cuaca mungkin didefinisikan sebagai berikut:

Berhasil Pengguna membuka fitur "Apakah akan hujan?" 50 persen lebih sering dibandingkan sebelumnya.
Kegagalan Pengguna tidak sering membuka fitur "Apakah akan hujan?" tidak lebih sering dari sebelumnya.

Metrik aplikasi video dapat ditentukan sebagai berikut:

Berhasil Pengguna menghabiskan waktu rata-rata 20 persen lebih banyak di situs.
Kegagalan Pengguna menghabiskan waktu rata-rata di situs tidak lebih banyak daripada sebelumnya.

Sebaiknya tentukan metrik keberhasilan yang ambisius. Namun, ambisi yang tinggi dapat menyebabkan kesenjangan antara keberhasilan dan kegagalan. Misalnya, pengguna yang menghabiskan waktu rata-rata 10 persen lebih banyak di situs daripada sebelumnya bukanlah keberhasilan atau kegagalan. Kesenjangan yang tidak terdefinisi bukanlah yang penting.

Yang penting adalah kapasitas model Anda untuk mendekati—atau melampaui—definisi keberhasilan. Misalnya, saat menganalisis performa model, pertimbangkan pertanyaan berikut: Apakah meningkatkan model akan membuat Anda lebih dekat dengan kriteria keberhasilan yang ditentukan? Misalnya, suatu model mungkin memiliki metrik evaluasi yang bagus, tetapi tidak membawa Anda lebih dekat ke kriteria keberhasilan. Hal ini menunjukkan bahwa meskipun dengan model yang sempurna, Anda tidak akan memenuhi kriteria keberhasilan yang Anda tentukan. Di sisi lain, model mungkin memiliki metrik evaluasi yang buruk, tetapi membawa Anda lebih dekat ke kriteria keberhasilan. Hal ini menunjukkan bahwa meningkatkan model akan membawa Anda lebih dekat menuju kesuksesan.

Berikut adalah dimensi yang perlu dipertimbangkan saat menentukan apakah model ini layak untuk ditingkatkan:

  • Tidak cukup bagus, lanjutkan. Model ini tidak boleh digunakan di lingkungan produksi, tetapi seiring waktu dapat ditingkatkan secara signifikan.

  • Cukup bagus, dan lanjutkan. Model ini dapat digunakan di lingkungan produksi, dan mungkin akan ditingkatkan kualitasnya.

  • Cukup bagus, tetapi tidak dapat dibuat lebih baik. Model ini berada dalam lingkungan produksi, tetapi mungkin sudah sebaik mungkin.

  • Tidak cukup baik, dan tidak akan pernah. Model tidak boleh digunakan di lingkungan produksi dan tidak ada pelatihan yang mungkin akan membawanya ke sana.

Saat memutuskan untuk meningkatkan model, evaluasi kembali apakah peningkatan resource, seperti waktu engineering dan biaya komputasi, membenarkan peningkatan prediksi peningkatan model.

Setelah menentukan metrik keberhasilan dan kegagalan, Anda perlu menentukan seberapa sering Anda akan mengukurnya. Misalnya, Anda dapat mengukur metrik keberhasilan enam hari, enam minggu, atau enam bulan setelah menerapkan sistem.

Saat menganalisis metrik kegagalan, cobalah untuk mengetahui mengapa sistem gagal. Misalnya, model mungkin memprediksi video mana yang akan diklik pengguna, tetapi model mungkin mulai merekomendasikan judul clickbait yang menyebabkan interaksi pengguna menurun. Dalam contoh aplikasi cuaca, model mungkin secara akurat memprediksi kapan akan hujan, tetapi untuk wilayah geografis yang terlalu luas.

Memeriksa Pemahaman Anda

Sebuah perusahaan fesyen ingin menjual lebih banyak pakaian. Seseorang menyarankan penggunaan ML untuk menentukan pakaian mana yang harus diproduksi oleh perusahaan. Dia berpikir bahwa mereka dapat melatih model untuk mengetahui jenis pakaian apa yang sedang diminati. Setelah melatih model, mereka ingin menerapkannya ke katalog untuk memutuskan pakaian mana yang akan dibuat.

Bagaimana dia seharusnya membingkai masalah mereka dalam istilah ML?

Hasil ideal: Tentukan produk yang akan diproduksi.

Sasaran model: Memprediksi artikel pakaian mana yang sedang tampil.

Output model: Klasifikasi biner, in_fashion, not_in_fashion

Metrik keberhasilan: Jual tujuh puluh persen atau lebih dari pakaian yang dibuat.

Hasil ideal: Tentukan jumlah kain dan persediaan untuk dipesan.

Sasaran model: Memprediksi jumlah produk yang akan diproduksi setiap item.

Output model: Klasifikasi biner, make, do_not_make

Metrik keberhasilan: Jual tujuh puluh persen atau lebih dari pakaian yang dibuat.

Hasil yang idealnya bukan menentukan jumlah kain dan perlengkapan yang harus dipesan. Skor ini untuk menentukan apakah suatu item harus diproduksi. Dengan demikian, sasaran model ini mencakup tujuan yang salah.