Ringkasan strategi perintah

Panduan ini memberikan ringkasan strategi umum untuk mendesain perintah dan checklist untuk memecahkan masalahnya.

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 performanya.

Masalah penulisan

  • Kesalahan ketik: Periksa salah ejaan dalam kata kunci (misalnya, meringkas, bukan meringkas), istilah teknis, atau nama entitas, karena hal ini dapat menurunkan performa.
  • Tata bahasa: Pastikan kalimat memiliki tata bahasa yang benar dan mudah diuraikan. Hindari kalimat bertele-tele, ketidaksesuaian subjek-predikat, atau struktur yang canggung yang dapat membingungkan model.
  • Tanda baca: Pastikan tanda baca seperti koma, titik, dan tanda kutip digunakan dengan benar, karena tanda baca yang salah dapat menyebabkan salah penafsiran.
  • Jargon yang tidak ditentukan: Definisikan jargon, akronim, atau inisialisme khusus domain. Jangan menganggap model tersebut mengenali mereka.
  • Kejelasan: Jika cakupan, langkah-langkah yang diperlukan, atau asumsi dasar perintah Anda tidak jelas, model mungkin salah memahami tugas. Pastikan semua petunjuk jelas.
  • Ambiguitas: Ganti kualifikasi subjektif (seperti "singkat") dengan batasan objektif yang dapat diukur (seperti "dalam tiga kalimat atau kurang").
  • Informasi utama tidak ada: Sertakan semua konteks yang diperlukan. Jika tugas mengandalkan dokumen, kebijakan, atau set data tertentu, berikan informasi tersebut dalam perintah.
  • Pilihan kata yang buruk: Gunakan bahasa yang jelas dan ringkas. Hindari frasa yang terlalu rumit, tidak jelas, atau bertele-tele yang dapat membingungkan model.
  • Peninjauan sekunder: Jika performa model tidak meningkat, minta rekan kerja untuk meninjau perintah. Perspektif baru sering kali dapat menemukan masalah yang mungkin terlewatkan oleh Anda.

Masalah terkait petunjuk dan contoh

  • Manipulasi terang-terangan: Hindari mencoba memengaruhi model dengan daya tarik emosional, sanjungan, atau ancaman (misalnya, "banyak hal yang dipertaruhkan"). Meskipun terkadang berhasil dengan model lama, hal ini dapat menurunkan performa pada model saat ini.
  • Petunjuk dan contoh yang bertentangan: Periksa apakah ada kontradiksi dalam perintah. Pastikan petunjuk tidak saling bertentangan atau bertentangan dengan contoh yang diberikan.
  • Petunjuk dan contoh yang berulang: Hapus informasi yang berulang. Hindari mengulangi petunjuk atau konsep yang sama, kecuali jika hal itu menambahkan informasi atau nuansa baru.
  • Petunjuk dan contoh yang tidak relevan: Pastikan semua petunjuk dan contoh relevan dengan tugas inti. Hapus yang dapat dihilangkan tanpa memengaruhi performa model.
  • Penggunaan contoh "few-shot": Untuk tugas yang kompleks, format tertentu, atau nada bahasa yang halus, berikan contoh few-shot konkret yang menunjukkan pola input-output yang diinginkan.
  • Spesifikasi format output tidak ada: Tentukan format output yang diinginkan secara eksplisit. Jangan membuat model menebak. Perkuat format dalam contoh few-shot Anda.
  • Definisi peran tidak ada: Jika model harus mengadopsi persona atau peran tertentu, definisikan dengan jelas dalam petunjuk sistem.

Masalah desain perintah dan sistem

  • Tugas yang kurang ditentukan: Tentukan cara menangani kasus ekstrem, input yang tidak terduga, dan data yang tidak ada. Jangan menganggap semua data yang diberikan akan lengkap dan terbentuk dengan baik.
  • Tugas di luar kemampuan model: Pastikan tugas berada dalam kemampuan model yang diketahui. Hindari memintanya untuk melakukan tugas yang memiliki batasan mendasar.
  • Terlalu banyak tugas: Jangan meminta model untuk melakukan terlalu banyak tugas berbeda dalam satu perintah (misalnya, meringkas, mengekstrak entity, dan menerjemahkan). Pecah alur kerja yang kompleks menjadi serangkaian perintah yang lebih sederhana.
  • Format data non-standar: Untuk output yang dapat dibaca mesin, gunakan format standar yang dapat diuraikan seperti JSON, XML, Markdown, atau YAML. Jika Anda memerlukan format kustom, minta model membuat format standar terlebih dahulu, lalu konversikan dengan kode Anda sendiri.
  • Urutan Rantai Pemikiran (CoT) yang salah: Saat menggunakan Rantai Pemikiran (CoT), pastikan contoh Anda menunjukkan penalaran langkah demi langkah sebelum jawaban akhir, bukan setelahnya.
  • Referensi internal yang bertentangan: Susun perintah secara logis. Hindari logika non-linear atau petunjuk yang tersebar yang memaksa model untuk menyusun tugasnya dari berbagai bagian perintah.
  • Risiko serangan injeksi perintah: Lindungi diri Anda dari serangan injeksi perintah. Saat memasukkan input pengguna yang tidak tepercaya ke dalam perintah, pastikan Anda telah menerapkan langkah-langkah keamanan yang jelas.

Langkah berikutnya