Meskipun tidak ada cara yang benar atau salah untuk mendesain perintah, ada strategi umum yang dapat Anda gunakan untuk memengaruhi respons model. Pengujian dan evaluasi yang ketat tetap penting untuk mengoptimalkan performa model.
Model bahasa besar (LLM) dilatih pada data teks dalam jumlah besar untuk mempelajari pola dan hubungan antar-unit bahasa. Jika diberi beberapa teks (perintah), model bahasa dapat memprediksi hal yang mungkin akan terjadi berikutnya, seperti alat pelengkapan otomatis yang canggih. Oleh karena itu, saat mendesain perintah, pertimbangkan berbagai faktor yang dapat memengaruhi prediksi model berikutnya.
Alur kerja rekayasa perintah
Rekayasa perintah adalah proses berbasis pengujian dan iterasi yang dapat meningkatkan performa model. Saat membuat perintah, Anda harus menentukan tujuan dan hasil yang diharapkan untuk setiap perintah dengan jelas dan mengujinya secara sistematis untuk mengidentifikasi area yang perlu ditingkatkan.
Diagram berikut menunjukkan alur kerja rekayasa perintah:
Cara membuat perintah yang efektif
Ada dua aspek perintah yang pada akhirnya memengaruhi efektivitasnya: konten dan struktur.
- Konten:
Untuk menyelesaikan tugas, model memerlukan semua informasi relevan terkait tugas. Informasi ini dapat mencakup petunjuk, contoh, informasi kontekstual, dan sebagainya. Untuk mengetahui detailnya, lihat Komponen perintah.
- Struktur:
Meskipun semua informasi yang diperlukan diberikan dalam perintah, pemberian struktur informasi dapat membantu model menguraikan informasi. Hal-hal seperti pengurutan, pemberian label, dan penggunaan pembatas dapat memengaruhi kualitas respons. Untuk mengetahui contoh struktur perintah, lihat Contoh template perintah.
Komponen perintah
Tabel berikut menunjukkan komponen penting dan opsional suatu perintah:
| Komponen | Deskripsi | Contoh |
|---|---|---|
| Tujuan | Tujuan yang ingin Anda capai dengan model ini. Jelaskan secara spesifik dan sertakan tujuan utama yang ingin dicapai. Juga disebut "misi" atau "sasaran". | Tujuan Anda adalah membantu siswa mengerjakan persoalan matematika tanpa memberikan jawabannya secara langsung. |
| Petunjuk | Petunjuk langkah demi langkah terkait cara melakukan tugas yang diberikan. Juga disebut "tugas", "langkah", atau "petunjuk". |
|
| Komponen opsional | ||
| Petunjuk sistem | Perintah teknis atau lingkungan yang dapat melibatkan pengendalian atau perubahan perilaku model dalam serangkaian tugas. Bagi banyak API model, petunjuk sistem ditentukan dalam a parameter khusus. Petunjuk sistem tersedia di Gemini 2.0 Flash dan model yang lebih baru. |
Anda adalah pakar coding yang berspesialisasi dalam merender kode untuk antarmuka frontend. Saat saya menjelaskan komponen situs yang ingin saya buat, harap tampilkan HTML dan CSS yang diperlukan untuk melakukannya. Jangan berikan penjelasan untuk kode ini. Tawarkan juga beberapa saran desain UI. |
| Persona | Peran atau fungsi yang dimainkan model. Juga disebut "peran" atau "visi". | Anda adalah tutor matematika yang siap membantu siswa menyelesaikan pekerjaan rumah matematika mereka. |
| Batasan | Batasan yang berlaku bagi model saat membuat respons, mencakup hal-hal yang boleh dan tidak boleh dilakukan model. Juga disebut "pagar pembatas", "batasan", atau "kontrol". | Jangan memberikan jawaban langsung kepada siswa. Alih-alih, berikan petunjuk yang mengarahkan siswa ke langkah berikutnya dalam menyelesaikan soal. Jika siswa benar-benar kesulitan, berikan langkah-langkah mendetail untuk menyelesaikan soal tersebut. |
| Nada | Nada respons. Dengan menentukan a persona, Anda juga dapat memengaruhi gaya dan nada respons. Juga disebut "gaya", "suara", atau "suasana". | Respons dengan santai tetapi tetap informatif. |
| Konteks | Segala informasi yang perlu diperhatikan oleh model untuk menyelesaikan tugas yang diberikan. Juga disebut "latar belakang", "dokumen", atau "data input". | Salinan rencana pelajaran matematika milik siswa. |
| Contoh few-shot | Contoh format respons yang benar atas sebuah perintah. Juga disebut "contoh" atau "sampel." | input: `input:` Saya mencoba menghitung jumlah bola golf yang dapat dimasukkan ke dalam kotak yang
memiliki volume satu meter kubik. Saya telah mengonversi satu meter kubik menjadi sentimeter kubik dan
membaginya dengan volume bola golf dalam sentimeter kubik, tetapi sistem mengatakan jawaban saya salah.Bola golf berbentuk bola dan tidak dapat dikemas ke dalam ruang dengan efisiensi sempurna. output: Perhitungan Anda mempertimbangkan efisiensi pengemasan bola maksimum. |
| Langkah-langkah penalaran | Minta model untuk menjelaskan langkah-langkah penalarannya. Hal ini terkadang dapat meningkatkan kemampuan penalaran model. Juga disebut "langkah-langkah berpikir". | Uraikan proses penalaran Anda langkah demi langkah. |
| Format respons | Format yang Anda inginkan untuk respons yang diberikan. Misalnya, Anda dapat meminta model untuk memberikan output respons dalam format JSON, tabel, Markdown, paragraf, daftar berbutir, kata kunci, presentasi singkat, dan sebagainya. Juga disebut "struktur", "presentasi", atau "tata letak". | Berikan respons dalam format Markdown. |
| Rangkuman | Pengulangan singkat poin-poin utama perintah, terutama format batasan dan respons format, di akhir perintah. | Jangan memberikan jawaban langsung, tetapi berikan saja petunjuknya. Selalu berikan respons dalam Markdown format. |
| Pengaman | Memastikan pertanyaan sesuai dengan tujuan bot. Juga disebut "aturan keamanan". | T/A |
Bergantung pada tugas tertentu yang diberikan, Anda dapat memilih untuk menyertakan atau mengecualikan beberapa komponen opsional. Anda juga dapat menyesuaikan urutan komponen dan memeriksa pengaruhnya terhadap respons.
Contoh template perintah
Template perintah berikut menunjukkan contoh tampilan perintah yang terstruktur dengan baik:
<OBJECTIVE_AND_PERSONA>
You are a [insert a persona, such as a "math teacher" or "automotive expert"]. Your task is to...
</OBJECTIVE_AND_PERSONA>
<INSTRUCTIONS>
To complete the task, you need to follow these steps:
1.
2.
...
</INSTRUCTIONS>
------------- Optional Components ------------
<CONSTRAINTS>
Dos and don'ts for the following aspects
1. Dos
2. Don'ts
</CONSTRAINTS>
<CONTEXT>
The provided context
</CONTEXT>
<OUTPUT_FORMAT>
The output format must be
1.
2.
...
</OUTPUT_FORMAT>
<FEW_SHOT_EXAMPLES>
Here we provide some examples:
1. Example #1
Input:
Thoughts:
Output:
...
</FEW_SHOT_EXAMPLES>
<RECAP>
Re-emphasize the key aspects of the prompt, especially the constraints, output format, etc.
</RECAP>
|
Praktik terbaik
Praktik terbaik desain perintah mencakup hal berikut:
- Berikan petunjuk yang jelas dan spesifik
- Sertakan contoh few-shot
- Tambahkan informasi kontekstual
- Gunakan petunjuk sistem
- Struktur perintah
- Perintahkan model untuk menjelaskan penalarannya
- Uraikan tugas yang kompleks
- Bereksperimen dengan nilai parameter
- Strategi iterasi perintah
Checklist kesehatan perintah
Jika perintah tidak berperforma seperti yang diharapkan, gunakan checklist berikut untuk mengidentifikasi potensi masalah dan meningkatkan performa perintah.
Masalah penulisan
- Kesalahan ketik: Periksa kata kunci yang menentukan tugas (misalnya, sumarize dan bukan summarize), istilah teknis, atau nama entity, karena kesalahan ketik dapat menyebabkan performa yang buruk.
- Tata bahasa: Jika kalimat sulit diuraikan, berisi fragmen yang tidak lengkap, memiliki subjek dan kata kerja yang tidak cocok, atau terasa canggung secara struktural, model mungkin tidak memahami perintah dengan benar.
- Tanda baca: Periksa penggunaan koma, titik, tanda kutip, dan pemisah lainnya, karena tanda baca yang salah dapat menyebabkan model salah menafsirkan perintah.
- Penggunaan jargon yang tidak ditentukan: Hindari penggunaan istilah, akronim, atau inisialisme khusus domain seolah-olah memiliki makna universal kecuali jika ditentukan secara eksplisit dalam perintah.
- Kejelasan: Jika Anda bertanya-tanya tentang cakupan, langkah-langkah spesifik yang harus diambil, atau asumsi implisit yang dibuat, perintah tersebut kemungkinan tidak jelas.
- Ambiguitas: Hindari penggunaan kualifikasi subjektif atau relatif yang tidak memiliki definisi konkret dan terukur. Sebagai gantinya, berikan batasan objektif (misalnya, "tulis ringkasan 3 kalimat atau kurang" dan bukan "tulis ringkasan singkat").
- Informasi kunci tidak ada: Jika tugas memerlukan pengetahuan tentang dokumen, kebijakan perusahaan, histori pengguna, atau set data tertentu, pastikan informasi tersebut disertakan secara eksplisit dalam perintah.
- Pilihan kata yang buruk: Periksa perintah untuk mengetahui frasa yang terlalu kompleks, tidak jelas, atau bertele-tele, karena dapat membingungkan model.
- Peninjauan sekunder: Jika model terus berperforma buruk, minta orang lain meninjau perintah Anda.
Masalah terkait petunjuk dan contoh
- Manipulasi terang-terangan: Hapus bahasa di luar tugas inti dari perintah yang mencoba memengaruhi performa menggunakan daya tarik emosional, pujian, atau tekanan buatan. Meskipun model dasar generasi pertama menunjukkan peningkatan dalam beberapa situasi dengan petunjuk seperti "hal yang sangat buruk akan terjadi jika Anda tidak mendapatkan jawaban yang benar", performa model dasar tidak akan lagi meningkat dan dalam banyak kasus akan menjadi lebih buruk.
- Petunjuk dan contoh yang bertentangan: Periksa hal ini dengan mengaudit perintah untuk mengetahui kontradiksi logis atau ketidakcocokan antara petunjuk atau antara petunjuk dan contoh.
- Petunjuk dan contoh yang berlebihan: Periksa perintah dan contoh untuk melihat apakah petunjuk atau konsep yang sama persis dinyatakan beberapa kali dengan cara yang sedikit berbeda tanpa menambahkan informasi atau nuansa baru.
- Petunjuk dan contoh yang tidak relevan: Periksa apakah semua petunjuk dan contoh penting untuk tugas inti. Jika petunjuk atau contoh dapat dihapus tanpa mengurangi kemampuan model untuk melakukan tugas inti, petunjuk atau contoh tersebut mungkin tidak relevan.
- Penggunaan contoh "few-shot": Jika tugasnya kompleks, memerlukan format tertentu, atau memiliki nada yang berbeda, pastikan ada contoh konkret dan ilustratif yang menunjukkan contoh input dan output yang sesuai.
- Spesifikasi format output tidak ada: Hindari membiarkan model menebak struktur output; sebagai gantinya, gunakan petunjuk yang jelas dan eksplisit untuk menentukan format dan menunjukkan struktur output dalam contoh few-shot Anda.
- Definisi peran tidak ada: Jika Anda akan meminta model untuk bertindak dalam peran tertentu, pastikan peran tersebut ditentukan dalam petunjuk sistem.
Masalah desain perintah dan sistem
- Tugas yang kurang spesifik: Pastikan petunjuk perintah memberikan jalur yang jelas untuk menangani kasus ekstrem dan input yang tidak terduga, serta memberikan petunjuk untuk menangani data yang tidak ada, bukan mengasumsikan bahwa data yang dimasukkan akan selalu ada dan memiliki format yang baik.
- Tugas di luar kemampuan model: Hindari penggunaan perintah yang meminta model untuk melakukan tugas yang memiliki batasan mendasar yang diketahui.
- Terlalu banyak tugas: Jika perintah meminta model untuk melakukan beberapa tindakan kognitif yang berbeda dalam satu kali proses (misalnya, 1. Buat ringkasan, 2. Ekstrak entity, 3. Terjemahkan, dan 4. Buat draf email), kemungkinan perintah tersebut mencoba melakukan terlalu banyak hal. Pisahkan permintaan menjadi beberapa perintah.
- Format data non-standar: Jika output model harus dapat dibaca oleh mesin atau mengikuti format tertentu, gunakan standar yang diakui secara luas seperti JSON, XML, Markdown, atau YAML yang dapat diuraikan oleh library umum. Jika kasus penggunaan Anda memerlukan format non-standar, pertimbangkan untuk meminta model menghasilkan output ke format umum, lalu menggunakan kode untuk mengonversi output.
- Urutan Chain of Thought (CoT) yang salah: Hindari pemberian contoh yang menunjukkan model menghasilkan jawaban terstruktur akhir sebelum menyelesaikan penalaran langkah demi langkah.
- Berpikir vs. Penalaran: Jika Anda menggunakan Berpikir, coba perintah tanpa petunjuk langkah demi langkah tentang cara model harus bernalar melalui tugas. Sebagai gantinya, uji ketergantungan pada Berpikir, dan lihat apakah penalaran langkah demi langkah yang dihasilkan Berpikir meningkatkan performa dibandingkan petunjuk penalaran langkah demi langkah eksplisit Anda.
- Referensi internal yang bertentangan: Hindari penulisan perintah dengan logika non-linear atau kondisional yang mengharuskan model menyusun petunjuk terfragmentasi dari beberapa tempat yang berbeda dalam perintah.
- Risiko injeksi perintah: Periksa apakah ada pengaman eksplisit di sekitar input pengguna yang tidak tepercaya yang dimasukkan ke dalam perintah, karena hal ini dapat menjadi risiko keamanan yang besar.
Langkah berikutnya
- Pelajari cara mengoptimalkan perintah untuk digunakan dengan model Google menggunakan pengoptimal perintah Gemini Enterprise Agent Platform (Pratinjau).
- Pelajari tentang praktik terbaik AI yang bertanggung jawab dan filter keamanan Agent Platform.