Strategi desain prompt

Halaman ini memperkenalkan beberapa strategi desain prompt umum yang dapat Anda gunakan saat mendesain prompt.

Model bahasa besar (LLM) dilatih dengan sejumlah besar data teks untuk mempelajari pola dan hubungan antarbahasa. Jika diberi beberapa teks (prompt), model bahasa dapat memprediksi hal yang mungkin akan terjadi berikutnya, seperti alat pelengkapan otomatis yang canggih.

Google AI Studio menghosting galeri perintah sederhana yang dimaksudkan untuk menampilkan secara interaktif banyak konsep yang dibagikan dalam panduan ini. Di bagian lain dalam panduan ini, Anda akan mempelajari strategi desain perintah berikut:

Memberikan petunjuk yang jelas dan spesifik

Memberi petunjuk kepada model tentang apa yang harus dilakukan adalah cara yang efektif dan efisien untuk menyesuaikan perilaku model. Pastikan petunjuk yang Anda berikan jelas dan spesifik. Instruksi dapat sesederhana daftar petunjuk langkah demi langkah atau serumit memetakan pengalaman dan pola pikir pengguna.

Menentukan tugas yang akan dilakukan

Jelaskan secara mendetail tugas yang Anda inginkan untuk dijalankan model. Tugasnya bisa sesederhana daftar petunjuk langkah demi langkah atau sekompleks memetakan pengalaman dan pola pikir pengguna. Perintah berikut memberi tahu model untuk meringkas blok teks:

Summarize this text:
Text: A quantum computer exploits quantum mechanical phenomena to perform calculations exponentially
faster than any modern traditional computer. At very tiny scales, physical matter acts as both
particles and as waves, and quantum computing uses specialized hardware to leverage this behavior.
The operating principles of quantum devices is beyond the scope of classical physics. When deployed
at scale, quantum computers could be used in a wide variety of applications such as: in
cybersecurity to break existing encryption methods while helping researchers create new ones, in
meteorology to develop better weather forecasting etc. However, the current state of the art quantum
computers are still largely experimental and impractical.
  
    Quantum computers leverage the wave-particle duality of matter at tiny scales to perform
    calculations exponentially faster than traditional computers. They harness quantum phenomena,
    which are beyond the scope of classical physics, to achieve this speed advantage. While
    promising for applications like cybersecurity, weather forecasting, and beyond, current
    quantum computers are still experimental and not yet practical for widespread use.
  

Menentukan batasan

Tentukan batasan yang terkait untuk membaca perintah atau membuat respons. Anda dapat memberi tahu model apa yang harus dilakukan dan tidak boleh dilakukan. Dari contoh sebelumnya, ringkasannya lebih pendek dari teks aslinya, tetapi mungkin Anda ingin ringkasannya menjadi lebih pendek. Dalam hal ini, Anda dapat menentukan batasan dalam prompt terkait berapa lama Anda ingin ringkasannya:

Summarize this text in two sentences:
Text: A quantum computer exploits quantum mechanical phenomena to perform calculations exponentially
faster than any modern traditional computer. At very tiny scales, physical matter acts as both
particles and as waves, and quantum computing uses specialized hardware to leverage this behavior.
The operating principles of quantum devices is beyond the scope of classical physics. When deployed
at scale, quantum computers could be used in a wide variety of applications such as: in
cybersecurity to break existing encryption methods while helping researchers create new ones, in
meteorology to develop better weather forecasting etc. However, the current state of the art quantum
computers are still largely experimental and impractical.
    

      Quantum computers harness the wave-particle duality of matter at the quantum level to perform
      computations exponentially faster than traditional computers. While these machines hold
      immense potential for fields like cybersecurity and weather forecasting, they are currently
      in their early stages of development and not yet practical for widespread use.
    

Menentukan format respons

Anda juga dapat memberikan petunjuk yang menentukan format respons. Misalnya, Anda dapat meminta respons untuk diformat sebagai tabel, daftar berbutir, presentasi singkat, kata kunci, kalimat, atau paragraf. Pesan sistem berikut menginstruksikan model agar menggunakan responsnya yang lebih komunikatif:

    All questions should be answered comprehensively with details, unless the user requests a
    concise response specifically. Respond in the same language as the query.
  
    What is a smart way to create a lemonade business?
  
Launching a Successful Lemonade Stand: A Smart Approach
Creating a lemonade business, whether a simple stand or a larger operation, requires strategic thinking. Here's a breakdown of how to approach it smartly:

1. Define Your Business:
Scope: Are you aiming for a small, seasonal lemonade stand, a food truck, a delivery service, or something else entirely?
Target Audience: Who are you selling to? Families, office workers, tourists?
Unique Selling Proposition: What sets your lemonade apart? Special flavors, organic ingredients, a unique recipe?

Pricing: Research competitor prices and determine a profitable pricing structure.
Location: Consider foot traffic, accessibility, and regulations for your chosen location.
.....
  

Ringkasan

  • Berikan petunjuk pada model tentang apa yang harus dilakukan.
  • Buat petunjuk yang jelas dan spesifik.
  • Tentukan batasan atau persyaratan pemformatan untuk output.

Sertakan contoh few-shot

Anda dapat menyertakan contoh dalam perintah yang menunjukkan kepada model seperti apa cara melakukannya dengan benar. Model ini mencoba mengidentifikasi pola dan hubungan dari contoh, lalu menerapkannya saat membuat respons. Perintah yang berisi beberapa contoh disebut prompt few-shot, sedangkan prompt yang tidak memberikan contoh disebut zero-shot prompt. Perintah few-shot sering digunakan untuk mengatur pemformatan, frasa, cakupan, atau pola umum respons model. Gunakan contoh yang spesifik dan bervariasi untuk membantu model mempersempit fokusnya dan memberikan hasil yang lebih akurat.

Sebaiknya selalu sertakan beberapa contoh foto dalam perintah Anda. Perintah tanpa contoh singkat cenderung kurang efektif. Bahkan, Anda dapat menghapus instruksi dari perintah Anda jika contohnya cukup jelas dalam menampilkan tugas yang sedang dikerjakan.

Prompt zero-shot vs few-shot

Petunjuk zero-shot berikut meminta model untuk memilih penjelasan terbaik.

Please choose the best explanation to the question:

Question: How is snow formed?
Explanation1: Snow is formed when water vapor in the air freezes into ice crystals in the
atmosphere, which can combine and grow into snowflakes as they fall through the atmosphere and
accumulate on the ground.
Explanation2: Water vapor freezes into ice crystals forming snow.
Answer:
  
Explanation 1 is the best explanation.
  

Jika kasus penggunaan Anda mengharuskan model menghasilkan respons yang ringkas, Anda dapat menyertakan contoh dalam dialog yang memberikan preferensi pada respons ringkas.

Perintah berikut memberikan dua contoh yang menunjukkan preferensi terhadap penjelasan yang lebih singkat. Dalam respons tersebut, Anda dapat melihat bahwa contoh memandu model untuk memilih penjelasan yang lebih singkat (Penjelasan2) dibandingkan dengan penjelasan yang lebih panjang (Penjelasan1) seperti sebelumnya.

Below are some examples showing a question, explanation, and answer format:

Question: Why is sky blue?
Explanation1: The sky appears blue because of Rayleigh scattering, which causes shorter blue
wavelengths of light to be scattered more easily than longer red wavelengths, making the sky look
blue.
Explanation2: Due to Rayleigh scattering effect.
Answer: Explanation2

Question: What is the cause of earthquakes?
Explanation1: Sudden release of energy in the Earth's crust.
Explanation2: Earthquakes happen when tectonic plates suddenly slip or break apart, causing a
release of energy that creates seismic waves that can shake the ground and cause damage.
Answer: Explanation1

Now, Answer the following question given the example formats above:

Question: How is snow formed?
Explanation1: Snow is formed when water vapor in the air freezes into ice crystals in the
atmosphere, which can combine and grow into snowflakes as they fall through the atmosphere and
accumulate on the ground.
Explanation2: Water vapor freezes into ice crystals forming snow.
Answer:
  
Answer: Explanation2
  

Temukan jumlah contoh yang optimal

Anda dapat bereksperimen dengan jumlah contoh yang akan diberikan dalam perintah untuk mendapatkan hasil yang paling diinginkan. Model seperti Gemini sering kali dapat memahami pola menggunakan beberapa contoh, meskipun Anda mungkin perlu bereksperimen dengan berapa jumlah contoh yang mengarah ke hasil yang diinginkan. Pada saat yang sama, jika Anda menyertakan terlalu banyak contoh, model mungkin akan mulai melebihi respons terhadap contoh.

Gunakan contoh untuk menampilkan pola, bukan antipola

Menggunakan contoh untuk menunjukkan pada model bahwa pola yang diikuti akan lebih efektif daripada menggunakan contoh untuk menunjukkan antipola yang harus dihindari pada model.

Pola negatif:

Don't end haikus with a question:
Haiku are fun
A short and simple poem
Don't you enjoy them?
  

Pola positif:

Always end haikus with an assertion:
Haiku are fun
A short and simple poem
A joy to write
  

Gunakan pemformatan yang konsisten di seluruh contoh

Pastikan struktur dan pemformatan contoh few-shot sama untuk menghindari respons dengan format yang tidak diinginkan. Salah satu tujuan utama menambahkan contoh few-shot dalam perintah adalah untuk menampilkan format respons kepada model. Oleh karena itu, penting untuk memastikan format yang konsisten di semua contoh, terutama dengan memperhatikan tag XML, spasi kosong, baris baru, dan pemisah contoh.

Ringkasan

  • Menyertakan contoh respons perintah dalam perintah membantu model mempelajari cara merespons.
  • Berikan contoh pola yang harus diikuti, bukan contoh pola yang harus dihindari.
  • Lakukan eksperimen dengan sejumlah prompt yang akan disertakan. Bergantung pada modelnya, terlalu sedikit contoh tidak efektif dalam mengubah perilaku model. Terlalu banyak contoh menyebabkan model menjadi terlalu pas.
  • Gunakan pemformatan yang konsisten di seluruh contoh

Tambahkan informasi kontekstual

Anda dapat menyertakan petunjuk dan informasi prompt yang diperlukan model untuk memecahkan masalah, bukan mengasumsikan bahwa model memiliki semua informasi yang diperlukan. Informasi kontekstual ini membantu model memahami batasan dan detail dari apa yang Anda minta untuk dilakukannya.

Contoh berikut meminta model untuk memberikan panduan pemecahan masalah untuk router:

What should I do to fix my disconnected wifi? The light on my Google Wifi router is yellow and
blinking slowly.
  
  A yellow blinking light on your Google Wifi router usually indicates a problem with the internet connection. Here are some steps to troubleshoot and fix the issue:
  1. Restart your router and modem:
    - Unplug your modem from the power outlet and wait for 30 seconds.
    - Plug your modem back in and wait for it to fully boot up.
    - Unplug your Google Wifi router and wait for 30 seconds.
    - Plug your Google Wifi router back in and wait for it to fully boot up.
.....
  

Responsnya terlihat seperti informasi pemecahan masalah umum yang tidak spesifik untuk router atau status lampu indikator LED.

Guna menyesuaikan respons untuk router tertentu, Anda dapat menambahkan perintah yang ada di panduan pemecahan masalah router sebagai konteks yang akan dirujuk saat memberikan respons.

Answer the question using the text below. Respond with only the text provided.
Question: What should I do to fix my disconnected wifi? The light on my Google Wifi router is yellow and blinking slowly.

Text:
Color: Slowly pulsing yellow
What it means: There is a network error.
What to do:
Check that the Ethernet cable is connected to both your router and your modem and both devices are turned on. You might need to unplug and plug in each device again.

Color: Fast blinking yellow
What it means: You are holding down the reset button and are factory resetting this device.
What to do:
If you keep holding down the reset button, after about 12 seconds, the light will turn solid yellow. Once it is solid yellow, let go of the factory reset button.

Color: Solid yellow
What it means: Router is factory resetting.
What to do:
This can take up to 10 minutes. When it's done, the device will reset itself and start pulsing white, letting you know it's ready for setup.

Color: Solid red
What it means: Something is wrong.
What to do:
Critical failure. Factory reset the router. If the light stays red, contact Wifi customer support.
  
Check that the Ethernet cable is connected to both your router and your modem and both devices are turned on. You might need to unplug and plug in each device again.
  

Ringkasan

  • Sertakan informasi (konteks) dalam perintah yang Anda inginkan untuk digunakan oleh model saat membuat respons.
  • Berikan petunjuk kepada model tentang cara menggunakan informasi kontekstual.

Tambahkan awalan

Awalan adalah kata atau frasa yang Anda tambahkan ke konten perintah yang dapat memiliki beberapa tujuan, bergantung pada tempat Anda menempatkan awalan tersebut:

  • Awalan input: Menambahkan awalan ke bagian input yang bermakna secara semantik ke model. Misalnya, awalan "Inggris:" dan "Prancis:" mendemarkasi dua bahasa yang berbeda.
  • Awalan output: Meskipun output dihasilkan oleh model, Anda dapat menambahkan awalan untuk output dalam perintah tersebut. Awalan output memberikan informasi kepada model tentang apa yang diharapkan sebagai respons. Misalnya, awalan output "JSON:" memberi sinyal kepada model bahwa output harus dalam format JSON.
  • Contoh awalan: Dalam perintah few-shot, menambahkan awalan ke contoh akan memberikan label yang dapat digunakan model saat membuat output, sehingga mempermudah penguraian konten output.

Pada contoh berikut, "Teks:" adalah awalan input dan "Jawabannya adalah:" adalah awalan output.

Classify the text as one of the following categories.
- large
- small
Text: Rhino
The answer is: large
Text: Mouse
The answer is: small
Text: Snail
The answer is: small
Text: Elephant
The answer is:
  
The answer is: large
  

Biarkan model menyelesaikan input parsial

Model bahasa generatif berfungsi seperti alat pelengkapan otomatis canggih. Saat Anda menyediakan konten parsial, model dapat menyediakan konten lainnya atau apa yang dianggapnya sebagai kelanjutan konten tersebut sebagai respons. Saat melakukannya, jika Anda menyertakan contoh atau konteks, model dapat mempertimbangkan contoh atau konteks tersebut.

Contoh berikut memberikan perintah dengan petunjuk dan input entity:

For the given order, return a JSON object that has the fields cheeseburger, hamburger, fries, or
drink, with the value being the quantity.

Order: A burger and a drink.
  
```
{
  "hamburger": 1,
  "drink": 1
}
```
  

Meskipun model melakukan seperti yang diminta, menulis prompt dalam bahasa alami terkadang menjadi tantangan dan banyak bergantung pada interpretasi model. Misalnya, menu restoran mungkin berisi banyak item. Untuk mengurangi ukuran respons JSON, Anda mungkin ingin menghapus item yang tidak diurutkan. Dalam hal ini, Anda dapat memberikan contoh dan awalan respons lalu membiarkan model menyelesaikannya:

Valid fields are cheeseburger, hamburger, fries, and drink.
Order: Give me a cheeseburger and fries
Output:
```
{
  "cheeseburger": 1,
  "fries": 1
}
```
Order: I want two burgers, a drink, and fries.
Output:
  
```
{
  "hamburger": 2,
  "drink": 1,
  "fries": 1
}
```
  

Perhatikan bagaimana "cheeseburger" dikecualikan dari output karena bukan bagian dari pesanan.

Prompt model untuk memformat responsnya

Strategi penyelesaian juga dapat membantu memformat respons. Contoh berikut meminta model untuk membuat kerangka esai:

Create an outline for an essay about hummingbirds.
  
  Hummingbirds: A Symphony of Speed and Color
    I. Introduction
    A. Hummingbirds are fascinating creatures known for their dazzling colors, lightning-fast flight, and unique feeding habits.
    B. Brief overview of the diversity of hummingbird species and their geographic distribution.
    C. Thesis statement: Hummingbirds are an embodiment of resilience, adaptation, and the wonders of the natural world.
.....
  

Perintah tidak menentukan format untuk garis besar dan model telah memilih format untuk Anda. Agar model menampilkan garis besar dalam format tertentu, Anda dapat menambahkan teks yang mewakili awal garis besar dan membiarkan model menyelesaikannya berdasarkan pola yang Anda mulai.

Create an outline for an essay about hummingbirds.
I. Introduction
   *
  
  Hummingbirds: Jewels of the Air
    **I. Introduction**
       * **Hook:** Begin with a captivating image or anecdote about hummingbirds, emphasizing their vibrant colors, rapid flight, and unique feeding habits.
       * **Background:** Briefly introduce hummingbirds as the smallest birds in the world and their fascinating adaptations for a nectar-rich diet.
       * **Thesis:** State the main argument or focus of the essay. Examples: 
            * **The incredible adaptations of hummingbirds enable them to thrive in diverse ecosystems.**
            * **Hummingbirds play a crucial role in pollination and biodiversity.**
            * **The beauty and grace of hummingbirds make them captivating subjects for both scientific study and artistic appreciation.**
  

Ringkasan

  • Jika Anda memberikan input parsial kepada model, model akan menyelesaikan input tersebut berdasarkan contoh atau konteks yang tersedia dalam prompt.
  • Meminta model untuk menyelesaikan input terkadang lebih mudah daripada menjelaskan tugas dalam bahasa yang alami.
  • Menambahkan jawaban sebagian ke perintah dapat memandu model untuk mengikuti pola atau format yang diinginkan.

Membagi perintah menjadi komponen sederhana

Untuk kasus penggunaan yang memerlukan perintah yang kompleks, Anda dapat membantu model mengelola kompleksitas ini dengan memecah semuanya menjadi komponen yang lebih sederhana.

Perincian petunjuk

Daripada memiliki banyak petunjuk dalam satu perintah, buat satu perintah per petunjuk. Anda dapat memilih perintah yang akan diproses berdasarkan input pengguna.

Perintah berantai

Untuk tugas kompleks yang melibatkan beberapa langkah berurutan, buat setiap langkah menjadi perintah dan rantaikan perintah secara berurutan. Dalam rantai perintah berurutan ini, output dari satu perintah dalam urutan akan menjadi input untuk perintah berikutnya. Output perintah terakhir dalam urutan adalah output akhir.

Respons gabungan

Agregasi adalah saat Anda ingin melakukan berbagai tugas paralel pada berbagai bagian data dan menggabungkan hasilnya untuk menghasilkan output akhir. Misalnya, Anda dapat memberi tahu model untuk melakukan satu operasi pada bagian pertama data, melakukan operasi lain pada data lainnya, dan menggabungkan hasilnya.

Ringkasan

  • Uraikan petunjuk kompleks menjadi perintah untuk setiap petunjuk dan tentukan perintah yang akan diterapkan berdasarkan input pengguna.
  • Bagi beberapa langkah berurutan menjadi perintah terpisah dan rantaikan sehingga output pada perintah sebelumnya menjadi input perintah berikutnya.
  • Uraikan tugas paralel dan gabungkan respons untuk menghasilkan output akhir.

Buat eksperimen dengan berbagai parameter value

Setiap panggilan yang Anda kirim ke model menyertakan parameter value yang mengontrol cara model menghasilkan respons. Model ini dapat memberikan hasil yang berbeda untuk parameter value yang berbeda. Bereksperimenlah dengan parameter value yang berbeda untuk mendapatkan value terbaik untuk tugas tersebut. Parameter yang tersedia untuk model yang berbeda mungkin berbeda. Parameter yang paling umum adalah sebagai berikut:

  • Token output maks
  • Suhu
  • Top-K
  • Top-P

Token output maks

Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 20 kata.

Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang lebih panjang.

Suhu

Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang lebih deterministik dan kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 bersifat deterministik, yang berarti bahwa respons probabilitas tertinggi selalu dipilih.

Untuk sebagian besar kasus penggunaan, coba mulai dengan suhu 0.2. Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan respons fallback, coba tingkatkan suhunya.

Top-K

Top-K mengubah cara model memilih token untuk output. Top-K 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K 3 berarti token berikutnya dipilih di antara tiga token yang paling mungkin dengan menggunakan suhu.

Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan pengambilan sampel suhu.

Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Top-K default adalah 40.

Top-P

Top-P mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat top-K) hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai top-P. Misalnya, jika token A, B, dan C memiliki probabilitas 0,3, 0,2, dan 0,1 dengan nilai top-P 0.5, model akan memilih A atau B sebagai token berikutnya dengan menggunakan suhu dan mengecualikan C sebagai kandidat.

Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Top-P default adalah 0.95.

Strategi iterasi prompt

Desain perintah adalah proses iteratif yang sering kali memerlukan beberapa iterasi sebelum Anda mendapatkan respons yang diinginkan secara konsisten. Bagian ini memberikan panduan tentang beberapa hal yang dapat Anda coba saat melakukan iterasi pada perintah Anda.

Gunakan frasa yang berbeda

Penggunaan kata atau frasa yang berbeda dalam perintah Anda sering kali menghasilkan respons yang berbeda dari model meskipun semuanya memiliki arti yang sama. Jika Anda tidak mendapatkan hasil yang diharapkan dari perintah, coba susun ulang kata-katanya.

Version 1:
How do I bake a pie?

Version 2:
Suggest a recipe for a pie.

Version 3:
What's a good pie recipe?
  

Beralih ke tugas analog

Jika Anda tidak dapat membuat model mengikuti petunjuk Anda untuk suatu tugas, coba berikan petunjuk untuk tugas analog yang mencapai hasil yang sama.

Dialog ini memberi tahu model untuk mengategorikan buku dengan menggunakan kategori yang telah ditentukan.

Which category does The Odyssey belong to:
thriller
sci-fi
mythology
biography
  
    The Odyssey belongs to the category of **mythology**. 

    Here's why:
    
    * **Mythology:** The Odyssey tells the story of Odysseus, a hero from Greek mythology, and his
    journey home after the Trojan War. It features gods, monsters, and supernatural events common to
    Greek mythology.
.....
  

Respons benar, tetapi model tidak berada dalam batas opsi. Anda juga ingin membuat model untuk merespons dengan salah satu opsi, bukan dalam kalimat lengkap. Dalam hal ini, Anda dapat menyusun ulang petunjuk sebagai pertanyaan pilihan ganda dan meminta model untuk memilih opsi.

Multiple choice problem: Which of the following options describes the book The Odyssey?
Options:
- thriller
- sci-fi
- mythology
- biography
  
The correct answer is **mythology**. 
  

Mengubah urutan konten prompt

Urutan konten dalam prompt terkadang dapat memengaruhi respons. Coba ubah urutan konten dan lihat pengaruhnya terhadap respons.

Version 1:
[examples]
[context]
[input]

Version 2:
[input]
[examples]
[context]

Version 3:
[examples]
[input]
[context]

Respons penggantian

Respons penggantian adalah respons yang ditampilkan oleh model saat perintah atau respons memicu filter keamanan. Contoh respons penggantian adalah "Saya tidak dapat membantu hal tersebut, karena saya hanya model bahasa".

Jika model merespons dengan respons penggantian, coba tingkatkan suhu.

Hal yang perlu dihindari

  • Hindari mengandalkan model untuk menghasilkan informasi faktual.
  • Gunakan dengan hati-hati saat mengerjakan soal matematika dan logika.

Langkah berikutnya