Few-Shot Prompting: Memberi Contoh dalam Prompt
Alih-alih melatih ulang model, kamu bisa mengajarinya lewat beberapa contoh yang ditulis langsung di dalam prompt. Cara ini disebut few-shot prompting, dan idenya berakar dari konsep in-context learning yang dipopulerkan paper GPT-3.
Ide in-context learning
Model bahasa besar dilatih untuk memprediksi token berikutnya. Dari kebiasaan itu muncul kemampuan meniru pola yang diberikan dalam teks masukan. Paper "Language Models are Few-Shot Learners" menyebut tugas dan beberapa contoh dapat diberikan murni lewat interaksi teks, tanpa pembaruan gradien maupun fine-tuning.
Artinya, model tidak belajar permanen dari contohmu. Ia hanya melanjutkan pola yang terlihat di dalam konteks. Begitu percakapan selesai, pengaruh contoh itu hilang. Inilah yang membedakan in-context learning dari pelatihan biasa.
Zero-shot, one-shot, few-shot
Paper GPT-3 membedakan beberapa cara memberi contoh. Zero-shot berarti kamu tidak memberi contoh sama sekali, hanya instruksi. One-shot berarti kamu memberi satu contoh. Few-shot berarti kamu memberi beberapa contoh sebelum meminta model melanjutkan.
Perbedaan ini penting karena jumlah contoh memengaruhi hasil. Dengan nol contoh, model mengandalkan pengetahuannya sendiri tentang tugas. Dengan satu contoh, ia punya gambaran bentuk keluaran. Dengan beberapa contoh, ia bisa menangkap pola yang lebih halus, misalnya gaya atau format yang kamu inginkan.
Wikipedia menjelaskan few-shot learning sebagai upaya menggeneralisasi dari sangat sedikit contoh pelatihan. Dalam konteks model bahasa, pelatihan itu sebenarnya tidak terjadi, karena contohnya hanya ada sementara di dalam prompt.
Kenapa memberi beberapa contoh membantu
Beberapa contoh bekerja seperti arahan yang nyata. Daripada menjelaskan panjang lebar, kamu cukup menunjukkan pasangan masukan dan keluaran yang kamu harapkan. Model meniru polanya untuk permintaan berikutnya.
Google menyebut pemberian contoh sebagai salah satu strategi prompting yang berguna. Contoh membantu terutama saat tugasnya sulit dijelaskan dengan kata-kata, atau saat kamu ingin keluaran mengikuti format tertentu dengan ketat. Contoh juga bisa menekan salah tafsir, karena model melihat langsung apa yang dianggap benar.
Paper GPT-3 melaporkan bahwa kemampuan few-shot ini meningkat seiring ukuran model. Model yang lebih besar lebih mahir menangkap pola dari beberapa contoh tanpa penyesuaian parameter.
Contoh juga berfungsi sebagai penjelas format. Daripada menulis aturan panjang tentang tanda baca atau urutan bagian, kamu cukup menunjukkan satu keluaran yang benar. Model menyalin strukturnya. Untuk banyak orang, ini lebih cepat daripada merumuskan aturan satu per satu.
Bagaimana menyusun contoh yang baik
Kualitas contoh lebih menentukan daripada jumlahnya. Pilih contoh yang benar-benar mewakili tugas, bukan sekadar yang mudah ditulis. Pastikan format masukan dan keluaran konsisten, karena model meniru pola yang berulang. Kalau satu contoh punya bentuk berbeda dari yang lain, model bisa bingung menebak pola mana yang harus diikuti.
Sebaiknya hindari contoh yang ambigu atau mengandung kesalahan. Model condong meniru apa yang ia lihat, termasuk kekeliruan kecil. Contoh yang rapi dan konsisten memberi isyarat yang lebih bersih. Kalau kamu memakai beberapa contoh sekaligus, urutannya pun bisa berpengaruh, jadi taruh contoh yang paling mendekati permintaan akhir sebagai penutup.
Zero-shot dulu, lalu tambah contoh
Mulailah dari zero-shot: coba instruksi tanpa contoh. Kalau hasilnya sudah memuaskan, tidak perlu menambah apa pun. Kalau keluaran kurang konsisten, tambahkan satu contoh, lalu beberapa bila masih perlu. Pendekatan bertahap ini menghindari prompt yang terlalu panjang untuk hasil yang belum tentu lebih baik.
Menaikkan jumlah contoh juga bukan solusi otomatis. Setiap tambahan memakan token, dan sering ada titik ketika penambahan tidak lagi mengubah hasil. Uji satu variasi setiap kali agar kamu tahu contoh mana yang benar-benar membantu.
Kapan few-shot berguna
Few-shot cocok ketika tugasmu punya pola keluaran yang khas, misalnya mengubah data ke format tertentu, meniru gaya penulisan, atau mengklasifikasikan teks dengan label khusus. Contoh juga membantu saat instruksi tunggal terasa ambigu dan kamu lelah menjelaskannya berulang.
Model juga bisa memakai contoh untuk tugas yang belum pernah ia lihat persis, selama polanya terlihat jelas. Ini yang membuat few-shot fleksibel: kamu tidak perlu melatih ulang apa pun, cukup menyusun contoh yang baik di dalam prompt.
Karena contohnya hanya sementara, hasilnya pun bisa berbeda tiap kali kamu mengubah susunan prompt. Ini bukan kelemahan, melainkan sifat alami in-context learning. Kamu tetap memegang kendali lewat contoh yang kamu tulis.
Kapan few-shot menambah biaya token
Setiap contoh yang kamu masukkan memakan ruang di dalam konteks dan dihitung sebagai token. Semakin banyak contoh, semakin panjang prompt, dan semakin besar pula biaya serta waktu yang dibutuhkan. Ada titik ketika menambah contoh lagi tidak lagi memberi manfaat sepadan.
Untuk tugas sederhana, nol atau satu contoh sering sudah cukup. Menjejalkan banyak contoh justru bisa memenuhi jendela konteks dan menyisakan sedikit ruang untuk bahan utama. Karena itu, pilih contoh yang paling mewakili, bukan yang paling banyak. Kualitas contoh biasanya lebih penting daripada jumlahnya.
Paper GPT-3 juga mencatat bahwa pada beberapa tugas, few-shot masih kesulitan. Jadi memberi contoh bukan jaminan berhasil di semua hal. Uji dulu pada tugasmu, dan bandingkan dengan versi tanpa contoh sebelum menambah lebih banyak.
Perhitungan token ini penting karena jendela konteks punya batas. Setelah penuh, ada bahan yang harus dipotong, dan bisa jadi justru instruksi atau data penting yang tergusur. Jadi hemat contoh sejak awal lebih baik daripada menyesuaikan nanti saat prompt sudah terlalu panjang.
Ringkasan
Few-shot prompting memanfaatkan in-context learning: model meniru pola dari beberapa contoh di dalam prompt tanpa pelatihan ulang. Ia berguna untuk tugas berpola khusus dan format yang ketat, tetapi setiap contoh menambah token dan biaya. Mulai dari sedikit contoh, uji dampaknya, lalu sesuaikan jumlahnya dengan kebutuhan.