Ringkasan strategi perintah

Meskipun tidak ada cara yang benar atau salah untuk mendesain prompt, 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 dengan data teks dalam jumlah besar untuk mempelajari pola dan hubungan antar-unit bahasa. Jika diberi beberapa teks (prompt), 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, penting untuk menentukan dengan jelas tujuan dan hasil yang diharapkan untuk setiap perintah dan mengujinya secara sistematis untuk mengidentifikasi area yang perlu ditingkatkan.

Diagram berikut menunjukkan alur kerja rekayasa perintah:

Diagram 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 yang terkait dengan tugas tersebut. 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, penyusunan struktur informasi akan membantu model menguraikan informasi. Hal-hal seperti urutan, pelabelan, dan penggunaan pembatas dapat memengaruhi kualitas respons. Untuk 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 "tujuan". 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".
  1. Pahami isi soal yang diajukan.
  2. Pahami letak kesulitan siswa.
  3. Berikan petunjuk untuk langkah berikutnya dalam soal.
Komponen opsional
Petunjuk sistem

Perintah teknis atau lingkungan yang dapat melibatkan pengendalian atau perubahan perilaku model dalam serangkaian tugas. Untuk banyak API model, petunjuk sistem ditentukan dalam parameter khusus.

Petunjuk sistem tersedia di model Gemini 2.0 Flash dan yang lebih baru.

Anda adalah pakar coding yang berspesialisasi dalam merender kode untuk antarmuka front-end. Saat saya menjelaskan komponen situs yang ingin saya buat, berikan HTML dan CSS yang diperlukan untuk melakukannya. Jangan berikan penjelasan untuk kode ini. Juga menawarkan 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, termasuk hal-hal yang boleh dan tidak boleh dilakukan model. Juga disebut "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. Anda juga dapat memengaruhi gaya dan nada respons dengan menentukan persona. Juga disebut "gaya", "suara", atau "nuansa". 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: Saya mencoba menghitung berapa banyak bola golf yang dapat masuk 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.
output: Bola golf berbentuk bola dan tidak dapat dikemas ke dalam ruang dengan efisiensi sempurna. Penghitungan Anda mempertimbangkan efisiensi pengepakan maksimum bola.
Langkah-langkah penalaran Minta model untuk menjelaskan langkah-langkah penalarannya. Hal ini terkadang dapat meningkatkan kemampuan penalaran model. Juga disebut "langkah-langkah berpikir". Jelaskan alasan 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 batasan dan format respons, di akhir perintah. Jangan memberikan jawaban langsung, tetapi berikan saja petunjuknya. Selalu berikan respons dalam format Markdown.
Pengaman Memastikan pertanyaan sesuai dengan tujuan bot. Juga disebut "aturan keamanan". T/A

Bergantung pada tugas tertentu yang sedang dikerjakan, 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:

Daftar periksa 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, bukan summarize), istilah teknis, atau nama entitas, karena kesalahan ejaan dapat menyebabkan performa yang buruk.
  • Tata bahasa: Jika kalimat sulit diuraikan, berisi fragmen yang berlebihan, 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 singkatan khusus domain seolah-olah memiliki makna universal, kecuali jika istilah tersebut didefinisikan secara eksplisit dalam perintah.
  • Kejelasan: Jika Anda merasa bingung tentang cakupan, langkah-langkah spesifik yang harus dilakukan, 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 utama 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 apakah perintah memiliki frasa yang terlalu rumit, tidak jelas, atau terlalu panjang, 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 berupaya memengaruhi performa menggunakan daya tarik emosional, sanjungan, atau tekanan buatan. Meskipun model dasar generasi pertama menunjukkan peningkatan dalam beberapa situasi dengan petunjuk seperti "hal-hal yang sangat buruk akan terjadi jika Anda tidak melakukannya dengan 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 menemukan kontradiksi logis atau ketidakcocokan antara petunjuk atau antara petunjuk dan contoh.
  • Instruksi dan contoh yang berlebihan: Periksa perintah dan contoh untuk melihat apakah instruksi 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 ada petunjuk atau contoh yang dapat dihapus tanpa mengurangi kemampuan model untuk melakukan tugas inti, petunjuk atau contoh tersebut mungkin tidak relevan.
  • Penggunaan contoh "sedikit contoh": Jika tugasnya rumit, memerlukan format tertentu, atau memiliki nuansa nada yang halus, pastikan ada contoh konkret dan ilustratif yang menunjukkan input sampel 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 sedikit tembakan 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 hilang, bukan mengasumsikan bahwa data yang dimasukkan akan selalu ada dan terbentuk dengan baik.
  • Tugas di luar kemampuan model: Hindari menggunakan 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 proses (misalnya, 1. Buat ringkasan, 2. Mengekstrak entity, 3. Terjemahkan, dan 4. Membuat draf email), kemungkinan mencoba melakukan terlalu banyak hal. Bagi permintaan menjadi beberapa perintah terpisah.
  • 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 dalam format umum, lalu menggunakan kode untuk mengonversi output.
  • Urutan Rantai Pemikiran (CoT) yang salah: Hindari memberikan contoh yang menunjukkan model menghasilkan jawaban akhir yang terstruktur sebelum menyelesaikan penalaran langkah demi langkah.
  • Referensi internal yang bertentangan: Hindari menulis perintah dengan logika non-linear atau kondisi yang mengharuskan model menyusun petunjuk yang terfragmentasi dari beberapa tempat berbeda dalam perintah.
  • Risiko injeksi perintah: Periksa apakah ada pengamanan eksplisit di sekitar input pengguna yang tidak tepercaya yang dimasukkan ke dalam perintah, karena hal ini dapat menjadi risiko keamanan yang besar.

Langkah berikutnya