Pengantar prompt engineering

Model GPT-3, GPT-3.5, dan GPT-4 dari OpenAI berbasis perintah. Dengan model berbasis perintah, pengguna berinteraksi dengan model dengan memasukkan perintah teks, yang ditanggapi oleh model dengan penyelesaian teks. Penyelesaian ini merupakan kelanjutan model teks input.

Meskipun model ini sangat kuat, perilakunya juga sangat sensitif terhadap perintah. Hal ini membuat konstruksi yang cepat menjadi keterampilan yang penting untuk dikembangkan.

Konstruksi prompt bisa sulit. Dalam praktiknya, permintaan bertindak untuk mengonfigurasi bobot model untuk menyelesaikan tugas yang diinginkan, tetapi lebih dari seni daripada ilmu pengetahuan, sering membutuhkan pengalaman dan intuisi untuk membuat permintaan yang sukses. Tujuan dari artikel ini adalah untuk membantu Anda memulai proses pembelajaran ini. Ini mencoba untuk menangkap konsep dan pola umum yang berlaku untuk semua model GPT. Namun, penting untuk dipahami bahwa setiap model bertingkah berbeda, sehingga pembelajaran mungkin tidak berlaku sama untuk semua model.

Dasar

Bagian ini mencakup konsep dasar dan elemen perintah GPT.

Perintah teks adalah cara pengguna berinteraksi dengan model GPT. Seperti semua model bahasa generatif, model GPT mencoba menghasilkan rangkaian kata berikutnya yang paling mungkin diikuti dari teks sebelumnya. Seolah-olah kita mengatakan Apa hal pertama yang datang ke pikiran Anda ketika saya mengatakan <prompt>? Contoh di bawah ini menunjukkan perilaku ini. Mengingat kata-kata pertama konten terkenal, model ini dapat melanjutkan teks secara akurat.

Prompt Penyelesaian
Empat skor dan tujuh tahun yang lalu kami ayah dilahirkan di benua ini, sebuah bangsa baru, dikandung di Liberty, dan berdedikasi untuk dalih bahwa semua orang diciptakan sama. [...]
"Panggil aku Ismael." "Beberapa tahun yang lalu—tidak masalah berapa lama tepatnya—memiliki sedikit o tidak ada uang di dompet saya, dan tidak ada yang khusus untuk menarik minat saya di pantai, saya pikir saya akan berlayar sedikit dan melihat bagian dunia yang berair." [...]

Saat Anda mengembangkan permintaan yang lebih kompleks, sangat membantu untuk mengingat perilaku mendasar ini. Terlepas dari permintaan yang disediakan, model hanya merespons dengan apa yang ditentukan kemungkinan besar (mengingat data pelatihan dan target pelatihannya). Jika Anda mengajukan pertanyaan dalam perintah Anda, model tidak mengikuti jalur kode "Tanya Jawab", tetapi tampaknya menjawab pertanyaan karena jawabannya adalah jenis respons yang paling mungkin untuk pertanyaan yang diberikan sebagai input.

Komponen perintah

Saat menggunakan API Penyelesaian meskipun tidak ada diferensiasi antara berbagai bagian prompt, itu masih dapat berguna untuk pembelajaran dan diskusi untuk mengidentifikasi komponen prompt yang mendasar. Dengan API Penyelesaian Obrolan ada bagian berbeda dari prompt yang dikirim ke API dalam bentuk array kamus dengan peran terkait: sistem, pengguna, dan asisten. Panduan ini berfokus lebih umum tentang cara memikirkan konstruksi yang diminta daripada memberikan panduan preskriptif yang khusus untuk satu API di atas API lainnya.

Penting juga untuk dipahami bahwa meskipun mungkin ada cara lain yang valid untuk membedah perintah, tujuan dari perincian ini adalah untuk memberikan cara yang relatif sederhana untuk memikirkan konstruksi yang cepat. Dengan API Penyelesaian, semua komponen bersifat opsional, tetapi setidaknya satu harus ada dan sebagian besar perintah menyertakan lebih dari satu komponen. Mungkin ada beberapa area abu-abu antara komponen juga. Urutan yang disajikan di bawah ini kira-kira sesuai dengan seberapa umum setiap komponen digunakan, dari yang paling sedikit hingga paling sedikit.

Petunjuk

Instruksi kemungkinan merupakan komponen prompt yang paling umum digunakan. Instruksinya hanyalah: instruksi untuk model tentang apa yang harus dilakukan. Meskipun sederhana dalam konsep, mereka bisa menjadi kompleks dalam praktiknya. Tabel berikut mengilustrasikan ini dengan memperlihatkan instruksi sederhana dan lebih kompleks, dalam dua bentuk yang berbeda.

Jenis Instruksi Prompt Penyelesaian
Instruksi sederhana Tulis pengantar untuk buletin mingguan. Selamat datang di buletin mingguan kami. Minggu ini kami memiliki fokus khusus pada produktivitas. Kami akan membagikan tips dan trik tentang cara menjadi produktif di semua bidang kehidupan Anda. Kami harap Anda menikmati dan silakan berbagi dengan teman-teman Anda!
Instruksi kompleks Tulis pengantar untuk buletin mingguan ke perusahaan saya bernama Contoso. Ini harus menyebutkan pertemuan semua tangan besar yang kami miliki minggu lalu dan berterima kasih kepada tim atas semua kerja keras mereka selama beberapa bulan terakhir yang sulit. Selamat datang di buletin mingguan Contoso! Kami memiliki pertemuan dengan semua tangan minggu lalu dan saya ingin berterima kasih kepada tim atas semua kerja keras mereka selama beberapa bulan terakhir yang sulit. Kami menantikan masa depan yang cerah dan saya yakin bahwa dengan dedikasi dan komitmen tim kami, kami akan mencapai hal-hal besar. Terima kasih telah menjadi bagian dari tim kami dan saya berharap dapat bekerja dengan Anda semua dalam beberapa minggu dan bulan mendatang. Tulus, [Nama Anda].
Instruksi Kompleks Tulis pengantar untuk buletin mingguan, termasuk yang berikut ini:
- Perusahaan saya bernama contoso
- Salam yang meriah
- Berterima kasih kepada tim atas kerja keras mereka selama beberapa bulan yang sulit
- Outlook positif untuk kuartal mendatang
- Ditandatangani oleh SLT
Halo tim Contoso! Saya ingin meluangkan waktu sejenak untuk berterima kasih atas semua kerja keras Anda selama beberapa bulan terakhir. Ini adalah beberapa bulan yang sulit, tetapi Anda semua telah menarik bersama-sama dan melakukan pekerjaan yang luar biasa. Aku sangat bangga pada kalian semua. Melihat ke depan untuk kuartal berikutnya, aku merasa benar-benar positif. Saya pikir kita akan mencapai beberapa hal besar. Terima kasih lagi, Tim Kepemimpinan Senior.

Isi Utama

Konten utama mengacu pada semacam teks yang sedang diproses atau diubah oleh model. Konten utama biasanya digunakan bersama dengan instruksi. Contoh sederhananya adalah terjemahan bahasa. Dalam contoh di bawah ini, teks bahasa Inggris akan dianggap sebagai konten utama sementara "Terjemahkan ke Bahasa Prancis:" adalah instruksi.

Prompt Penyelesaian
Bisakah kau memberitahuku bagaimana pergi ke museum?
Terjemahkan ke bahasa Prancis:
Pouvez-vous s'il vous plaît me dire comment aller au musée?

Konten utama juga bisa jauh lebih lama. Dalam contoh berikut, konten utama adalah bagian pengenalan dari entri Wikipedia pada kompleksitas waktu, yang panjangnya hampir 300 kata. Konten ini telah disingkat dalam tabel kami untuk kemudahan tampilan.

Prompt Penyelesaian
Dalam ilmu komputer, kompleksitas waktu adalah kompleksitas komputasi yang menggambarkan jumlah waktu komputer yang diperlukan untuk menjalankan algoritma. Kompleksitas waktu umumnya diperkirakan oleh [...]
Ringkas teks sebelumnya dalam beberapa kalimat:
Kompleksitas waktu adalah ukuran berapa lama algoritma dijalankan. Biasanya dinyatakan sebagai fungsi dari ukuran input. Ukuran yang paling umum adalah kompleksitas waktu kasus terburuk, yang merupakan jumlah waktu maksimum yang diperlukan untuk input ukuran tertentu.
Dalam ilmu komputer, kompleksitas waktu adalah kompleksitas komputasi yang menggambarkan jumlah waktu komputer yang diperlukan untuk menjalankan algoritma. Kompleksitas waktu umumnya diperkirakan oleh [...]
TL;DR (Terlalu lama tidak membaca)
Kompleksitas waktu algoritma adalah jumlah waktu yang diperlukan untuk menjalankan algoritma. Kompleksitas waktu umumnya diperkirakan dengan menghitung jumlah operasi dasar yang dilakukan oleh algoritma, dengan alasan bahwa setiap operasi dasar membutuhkan waktu tetap untuk dilakukan. Kompleksitas waktu umumnya dinyatakan sebagai fungsi dari ukuran input.

Model GPT juga dapat menangani konten utama yang terstruktur. Dalam contoh di bawah ini, TSV tentang bir di Belgia (disingkat untuk ditampilkan dalam artikel ini) diteruskan ke model sebagai bagian dari prompt. Ini mampu menafsirkan konten dengan benar dan menjawab pertanyaan tentang data.

Prompt Penyelesaian
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00%
[...]
Mereferensikan tabel di atas, berapa banyak bir yang kurang dari 6% ABV?
Ada 10 bir dalam tabel yang kurang dari 6% ABV.

Contoh

Permintaan yang berhasil sering mengandalkan praktik pembelajaran "one-shot" atau "few-shot". Ini mengacu pada dimasukkannya satu atau beberapa contoh perilaku model yang diinginkan, biasanya dengan menyertakan pasangan input dan output. Ini tidak belajar dalam arti bahwa model diubah secara permanen, melainkan bahwa contoh lebih baik mengkondisikan model untuk merespons seperti yang diinginkan hanya untuk inferensi saat ini. Penggunaan prompt tanpa contoh terkadang disebut sebagai pembelajaran "zero-shot". Perhatikan bahwa dengan contoh pembelajaran beberapa bidikan API Penyelesaian Obrolan biasanya ditambahkan ke array pesan dalam bentuk contoh interaksi pengguna/asisten setelah pesan sistem awal.

Jenis Pembelajaran Prompt Penyelesaian
Tembakan nol Headline: Pelatih percaya diri cedera tidak akan menggagalkan Warriors
Topik:
Pelatih yakin bahwa cedera tidak akan menggagalkan musim Warriors. Tim masih fokus pada tujuan mereka dan mereka akan terus bekerja keras untuk mencapainya.
Beberapa kali ditembak Judul: Correa kembar untuk menggunakan keikutsertaan, menguji agensi gratis
Topik: Bisbol
Headline: Piala Dunia Qatar memiliki zona untuk merenungkan
Topik: Sepak Bola
Headline: Yates: Fantasy football intel for Week 6
Topik: Sepak Bola
Headline: Pelatih percaya diri cedera tidak akan menggagalkan Warriors
Topik:
Basket

Contoh di atas menggambarkan utilitas pembelajaran beberapa bidikan. Tanpa contoh, model tampaknya menebak perilaku yang diinginkan, sementara contohnya dengan bersih menunjukkan model cara beroperasi. Ini juga menunjukkan kekuatan model, dapat menyimpulkan kategori label yang diinginkan, bahkan tanpa label "bola basket" dalam contoh.

Isyarat

Isti bertindak sebagai "jumpstart" untuk output model, membantu mengarahkan model ke output yang diinginkan. Seringkali awalan yang dapat dibangun model. Dalam contoh di bawah ini, kami menunjukkan iseng mengarahkan cerita untuk menyertakan elemen kunci. Iseng sering digunakan bersama dengan instruksi, tetapi tidak selalu. Dalam contoh di bawah ini, model sedang digunakan untuk meringkas email pengumuman panjang. Isyarat digunakan dalam satu kasus untuk membantu memfokuskan output model dan untuk menyarankan format output tertentu (poin poin) di kasus lain.

Dalam konteks instruksi API Penyelesaian Obrolan mengambil bentuk pesan sistem, dan beberapa contoh bidikan ditunjukkan dengan menyediakan serangkaian contoh interaksi pengguna/asisten untuk membantu memandu model.

Jumlah Isti Prompt Penyelesaian
0 Tinjauan performa adalah komponen inti dari pendekatan Performa & Pengembangan kami di Contoso. [...]
Ringkas pesan email di atas:
Tujuan dari email ini adalah untuk memberi tahu karyawan tentang perubahan terbaru pada pengalaman tinjauan performa, yang merupakan bagian dari pendekatan Performa & Pengembangan Contoso. Perubahan ini mencakup struktur yang ditingkatkan, pengalaman pengguna dalam alat yang ditingkatkan, dan permintaan yang difokuskan. Selain itu, sekarang ada bagian Pembuka Percakapan opsional bagi karyawan untuk menandai topik yang ingin mereka diskusikan dengan manajer mereka.
1 Tinjauan performa adalah komponen inti dari pendekatan Performa & Pengembangan kami di Contoso. [...]
Ringkas pesan email di atas:
Pengamanan kunci pesan adalah
bahwa Contoso meningkatkan pengalaman tinjauan performa dengan membuatnya lebih berfokus pada prioritas inti, harapan, dan dampak. Selain itu, mereka meningkatkan pengalaman pengguna dalam alat dengan tips, sumber daya, dan panduan. Terakhir, mereka menambahkan panduan tentang cara mengaktifkan prioritas inti di seluruh perusahaan.
2 Tinjauan performa adalah komponen inti dari pendekatan Performa & Pengembangan kami di Contoso. [...]
Ringkas pesan email di atas:
Poin Penting:
Contoso memperkenalkan perubahan pada pengalaman tinjauan performa, berdasarkan umpan balik dari karyawan.
• Perubahan mencakup fokus baru pada prioritas inti, harapan, dan dampak; pengalaman pengguna yang ditingkatkan; dan panduan baru tentang prioritas inti di seluruh perusahaan.
• Tinjauan kinerja adalah waktu untuk merefleksikan kinerja dan pembelajaran sebelumnya serta merencanakan prioritas dan peluang pertumbuhan di masa depan.
• Karyawan dan manajer harus menulis komentar sebelum rapat peninjauan kinerja.
• Harus ada setidaknya dua ulasan kinerja per tahun.
• Investasi waktu untuk setiap peninjauan harus tetap sama.

Konten pendukung

Konten pendukung adalah informasi yang dapat digunakan model untuk memengaruhi output dalam beberapa cara. Ini berbeda dari konten utama karena bukan target utama tugas, tetapi biasanya digunakan bersama dengan konten utama. Contoh umum termasuk informasi kontekstual seperti tanggal saat ini, nama pengguna, preferensi pengguna, dan sebagainya. Contoh di bawah ini menggunakan konten pendukung untuk membantu mengatur serangkaian lokakarya yang direncanakan untuk pengguna. Tanpa dukungan (topik penting) model hanya mencantumkan lokakarya (dipotong untuk ditampilkan), ketika diberitahu tentang topik penting saya, model dapat mengelompokkan rapat secara akurat.

Konten Pendukung Prompt Penyelesaian
Tanpa Daftar lokakarya:
Deskripsi Judul
Perencanaan Workshop Kickoff Silakan bergabung dengan kami untuk memulai lokakarya kami! Dengarkan dari para pemimpin kami tentang prioritas lintas kelompok dan pembelajaran untuk tahun depan. Undangan ke acara ini telah dikirim ke semua orang di [...]
Ringkas lokakarya di atas, dikelompokkan menurut topik:
Daftar lokakarya:
Merencanakan Kickoff Lokakarya
-Merencanakan Pembungkusan Lokakarya
- Core MeetUp
- Perspektif yang Didorong Pelanggan
-Impact dan Area Fokus Utama
-Praktik terbaik
-Mempercepat adopsi aplikasi [...]
With Daftar lokakarya:
Deskripsi Judul
Perencanaan Workshop Kickoff Silakan bergabung dengan kami untuk memulai lokakarya kami! Dengarkan dari para pemimpin kami tentang prioritas lintas kelompok dan pembelajaran untuk tahun depan. Undangan ke acara ini telah dikirim ke semua orang di [...]
Topik Penting Saya: rekayasa perintah, pencarian, model GPT
Ringkas lokakarya di atas, dikelompokkan menurut topik penting saya:
1. Rekayasa Prompt:
- Tips rekayasa permintaan baru
- Seni rekayasa cepat
2. Cari:
-Penganut pencarian vektor dengan penyematan
3. Model GPT:
- Pengantin GPT-4
- GPT-35-Turbo secara mendalam.

Praktik terbaik

  • Jadilah Spesifik. Tinggalkan sesedikit mungkin interpretasi. Batasi ruang operasional.
  • Jadilah Deskriptif. Gunakan analogi.
  • Dua kali lipat. Terkadang Anda mungkin perlu mengulangi diri Anda pada model. Berikan instruksi sebelum dan sesudah konten utama Anda, gunakan instruksi dan isyarat, dll.
  • Order Matters. Urutan anda menyajikan informasi ke model mungkin berdampak pada output. Apakah Anda menempatkan instruksi sebelum konten Anda ("meringkas berikut...") atau setelah ("meringkas di atas...") dapat membuat perbedaan dalam output. Bahkan urutan beberapa contoh pengambilan gambar dapat berpengaruh. Hal ini disebut sebagai bias kebaruan.
  • Beri model "keluar". Terkadang dapat membantu untuk memberi model jalur alternatif jika tidak dapat menyelesaikan tugas yang ditetapkan. Misalnya, saat mengajukan pertanyaan atas sepotong teks, Anda mungkin menyertakan sesuatu seperti "respons dengan "tidak ditemukan" jika jawabannya tidak ada." Ini dapat membantu model menghindari menghasilkan respons palsu.

Efisiensi ruang

Meskipun ukuran input bertambah dengan setiap model GPT generasi baru, akan terus ada skenario yang menyediakan lebih banyak data daripada yang dapat ditangani model. Model GPT memecah kata-kata menjadi "token." Meskipun kata-kata multi-suku kata umum sering kali merupakan token tunggal, kata-kata yang kurang umum rusak dalam suku kata. Token terkadang dapat berlawanan intuitif, seperti yang ditunjukkan oleh contoh di bawah ini yang menunjukkan batas token untuk format tanggal yang berbeda. Dalam hal ini, ejaan seluruh bulan lebih hemat ruang daripada tanggal numerik sepenuhnya. Rentang dukungan token saat ini berubah dari 2.000 token dengan model GPT-3 sebelumnya hingga 32.768 token dengan versi 32k dari model GPT-4 terbaru.

Cuplikan layar string teks dengan warna yang disorot yang menggambarkan batas token.

Mengingat ruang terbatas ini, penting untuk menggunakannya seefisien mungkin.

  • Tabel – Seperti yang ditunjukkan pada contoh di bagian sebelumnya, model GPT dapat memahami data berformat tabular dengan cukup mudah. Ini bisa menjadi cara efisien ruang untuk menyertakan data, daripada mendahului setiap bidang dengan nama (seperti dengan JSON).
  • Spasi Putih – Spasi putih berturut-turut diperlakukan sebagai token terpisah yang dapat menjadi cara mudah untuk membuang ruang. Spasi yang mendahului kata, di sisi lain, biasanya diperlakukan sebagai bagian dari token yang sama dengan kata. Perhatikan dengan cermat penggunaan spasi kosong Anda dan jangan gunakan tanda baca saat spasi saja akan dilakukan.

Langkah berikutnya

Pelajari selengkapnya tentang Azure OpenAI.