Zero-shot prompting berarti meminta model mengerjakan tugas hanya dari instruksi, tanpa menunjukkan contoh jawaban yang kamu inginkan. "Terjemahkan paragraf ini ke bahasa Spanyol" dan "Ringkas email ini dalam dua kalimat" adalah prompt zero-shot. Inilah cara bawaan orang memakai model chat, dan untuk tugas-tugas umum biasanya hanya ini yang kamu butuhkan.
Arti zero-shot
Dalam machine learning, "shot" adalah contoh yang sudah dikerjakan. Istilah-istilah ini lebih tua daripada model chat, tapi maknanya dalam prompting dipopulerkan oleh Brown dkk. 2020, "Language Models are Few-Shot Learners", yang menguji GPT-3 dalam tiga pengaturan: deskripsi tugas dengan nol, satu, atau beberapa demonstrasi di dalam prompt, dan tanpa pelatihan ulang di satu pun pengaturan itu. Untuk model tersebut, beberapa contoh biasanya mengalahkan tanpa contoh.
Sejak itu, model chat dilatih secara intensif untuk mengikuti instruksi, dan itulah kenapa permintaan biasa sekarang bekerja dengan sangat baik. Prompt zero-shot persis situasi yang menjadi bahan latihan model-model itu: seseorang menjelaskan sebuah pekerjaan dengan kata-kata dan berharap pekerjaan itu diselesaikan.
Zero-shot bukan berarti tanpa konteks. Prompt zero-shot yang bagus tetap menyebutkan pembacanya, menempel input-nya, dan menjelaskan format serta batasannya. Satu-satunya yang tidak disertakan adalah contoh output yang sudah jadi.
Prompt zero-shot yang ditulis dengan baik
Prompt di bawah ini mengambil daftar tindakan dari catatan rapat tanpa contoh output, hanya dengan deskripsi output yang tepat. Matikan beberapa bagiannya untuk melihat baris mana yang bekerja.
Sprint sync, Selasa
Priya akan memperbaiki timeout login sebelum Jumat.
Membahas pindah ke penyedia CI baru, belum ada keputusan.
Tom menulis catatan rilis untuk 2.4.
Seseorang perlu memperbarui dokumen onboarding.
Lena: Aku akan me-review catatan Tom paling lambat Kamis.Priya: Perbaiki timeout login (sebelum Jumat) Tom: Tulis catatan rilis untuk 2.4 Belum ditugaskan: Perbarui dokumen onboarding Lena: Review catatan rilis Tom (paling lambat Kamis)
Baris format melakukan pekerjaan yang biasanya dilakukan contoh: baris itu menjabarkan bentuk persis setiap baris, jadi tidak ada yang perlu ditiru. Matikan baris itu dan balasannya memilih bentuknya sendiri, sering kali daftar berpoin dengan nama bercetak tebal, yang enak dibaca tapi tidak lagi rapi saat ditempel ke tracker. Matikan batasannya dan diskusi soal CI bisa muncul sebagai tugas, karena tidak ada yang memberi tahu model bahwa topik yang belum diputuskan tidak dihitung.
Kapan zero-shot sudah cukup
Zero-shot berhasil ketika model bisa menyimpulkan semuanya dari kata-katamu:
- Tugasnya umum. Meringkas, menerjemahkan, menjelaskan, membetulkan tata bahasa, dan menulis fungsi dari spesifikasi yang jelas adalah tugas-tugas yang sudah dilihat model berkali-kali dalam pelatihan.
- Kamu bisa menjelaskan output-nya dengan tepat. "Satu baris per item, penanggung jawab di depan" sama jelasnya dengan sebuah contoh. Lihat output terstruktur untuk menjelaskan format yang akan dibaca oleh program.
- Kategorinya bermakna sesuai namanya. Memilah ulasan menjadi positif dan negatif biasanya tidak butuh contoh, karena label-label itu bermakna sama bagi hampir semua orang.
Kapan sebaiknya menambahkan contoh
Ada hal-hal yang sulit dituangkan dalam kata-kata, dan di situlah prompt zero-shot mulai meleset:
- Batasan buatanmu sendiri. Kalau tim dukunganmu memasukkan "tidak bisa login" ke masalah akun dan bukan ke bug, model tidak mungkin tahu. Model akan memilih penafsiran yang diambil kebanyakan orang.
- Gaya khas tim. Pesan commit timmu atau nada newsletter-mu lebih mudah ditunjukkan daripada dijelaskan.
- Hampir benar berulang kali. Kalau kamu sudah dua kali mengubah kata-kata instruksinya dan output-nya masih sedikit meleset dengan cara yang sama, berhentilah mengubah kata-kata dan tunjukkan dua atau tiga jawaban yang benar.
Itulah few-shot prompting. Kebiasaan yang masuk akal adalah memulai dengan zero-shot, melihat apa yang kembali, lalu menambahkan contoh hanya untuk hal spesifik yang salah.
Zero-shot chain of thought
Kojima dkk. 2022, "Large Language Models are Zero-Shot Reasoners", menemukan bahwa menambahkan satu kalimat, "Let's think step by step" (Mari berpikir langkah demi langkah), membuat model-model besar jauh lebih baik dalam soal aritmetika, simbolik, dan logika, tanpa contoh sama sekali. Frasa itu membuat model menuliskan langkah-langkah perantara sebelum jawabannya, dan setiap langkah yang ditulisnya menjadi konteks untuk langkah berikutnya. Metode mereka memakai dua pemanggilan: yang pertama menghasilkan penalarannya, dan yang kedua meminta jawaban akhirnya.
Di blok di bawah ini, tab pertama memaksa jawaban langsung dan tab kedua memberi model ruang untuk bekerja.
12.40
Balasan pertama melupakan 10 menit yang berhasil dikejar kereta: jenis kekeliruan yang terjadi ketika model harus berkomitmen pada jawabannya di beberapa token pertama. Model saat ini bisa saja menjawab soal ini dengan benar di kedua versi; perbedaannya makin besar seiring bertambahnya langkah dalam soal. Versi kedua punya satu kelebihan lagi: setiap langkahnya terlihat, jadi kamu bisa melihat di mana jawabannya salah.
Model yang bernalar secara internal sebelum menjawab sudah melakukan pekerjaan ini tanpa diminta, jadi "Mari berpikir langkah demi langkah" tidak banyak menambah apa-apa selain balasan yang lebih panjang. Chain-of-thought prompting membahas teknik ini secara mendalam, termasuk versi few-shot-nya.
Zero-shot dan few-shot dalam sekilas
| Zero-shot | Few-shot | |
|---|---|---|
| Isi prompt | Instruksi, konteks, dan input | Sama, ditambah beberapa pasangan input dan jawaban |
| Paling cocok untuk | Tugas umum dengan output yang mudah dijelaskan | Label khusus, format tidak biasa, gaya khas tim |
| Biaya | Prompt pendek | Prompt lebih panjang, lebih banyak token per pemanggilan |
| Kegagalan yang umum | Memilih penafsiran yang paling umum, bukan penafsiranmu | Meniru pola yang tidak disengaja di dalam contoh |
Pertanyaan yang sering diajukan
Apa itu zero-shot prompting?
Zero-shot prompting adalah memberi model bahasa sebuah tugas hanya dengan instruksi, tanpa contoh output yang sudah jadi. "Ringkas email ini dalam dua kalimat" adalah prompt zero-shot. Model chat modern dilatih untuk mengikuti instruksi, jadi prompt zero-shot bisa menangani sebagian besar tugas sehari-hari dengan baik.
Apa bedanya zero-shot dan few-shot prompting?
Prompt zero-shot menjelaskan tugasnya dengan kata-kata. Prompt few-shot menambahkan beberapa contoh, masing-masing berupa input yang dipasangkan dengan jawaban yang kamu inginkan, supaya model bisa meniru polanya. Mulailah dengan zero-shot; beralihlah ke few-shot ketika output-nya terus meleset dari format atau pembedaan yang lebih mudah ditunjukkan daripada dijelaskan.
Kenapa disebut zero-shot?
Dalam machine learning, "shot" adalah contoh yang sudah dikerjakan. Paper GPT-3 dari Brown dkk. tahun 2020, "Language Models are Few-Shot Learners", menguji model dengan nol, satu, atau beberapa demonstrasi tugas di dalam prompt, dan dari situ nama-nama itu menjadi istilah baku dalam prompting: zero-shot, one-shot, dan few-shot.
Kapan zero-shot prompting tidak berhasil?
Zero-shot kesulitan ketika tugasnya bergantung pada aturan yang hanya kamu ketahui, seperti kategori milik timmu atau gaya penulisan khas perusahaan, ketika format output-nya tidak biasa, dan pada penalaran multilangkah di mana model menjawab terlalu cepat. Contoh bisa mengatasi dua yang pertama; meminta model bekerja langkah demi langkah membantu yang ketiga.
Apa itu zero-shot chain of thought?
Ini adalah prompt zero-shot yang meminta model bernalar sebelum menjawab, dan yang paling terkenal adalah dengan menambahkan "Let's think step by step." (Mari berpikir langkah demi langkah). Kojima dkk. menunjukkan pada tahun 2022 bahwa satu kalimat ini, tanpa contoh apa pun, meningkatkan hasil model-model besar pada soal aritmetika dan logika.