Cara kejuruteraan prompt berfungsi
Disebabkan cara model OpenAI dilatih, terdapat format prompt tertentu yang berfungsi dengan sangat baik dan menghasilkan output model yang lebih berguna. Panduan rasmi kejuruteraan prompt oleh OpenAI biasanya tempat terbaik untuk bermula bagi mendapatkan petua membuat prompt.
Di bawah ini kami kongsikan beberapa format prompt yang kami dapati berkesan, tetapi anda bebas mencuba format lain yang mungkin lebih sesuai dengan tugasan anda.
Petua Am dan Contoh
Nota: “{text input here}” ialah ruang letak untuk teks/konteks sebenar
1. Gunakan model terkini
Untuk hasil terbaik, kami biasanya mengesyorkan penggunaan model terkini yang paling berkeupayaan. Model yang lebih baharu biasanya lebih mudah direka promptnya.
Nota: Terdapat beberapa perbezaan yang perlu dipertimbangkan apabila membuat prompt untuk model penaakulan berbanding membuat prompt untuk model GPT. Maklumat lanjut di sini.
2. Letakkan arahan pada permulaan prompt dan gunakan ### atau """ untuk memisahkan arahan dan konteks
Kurang berkesan ❌:
Ringkaskan teks di bawah sebagai senarai berbutir bagi perkara yang paling penting.
{text input here}Lebih baik ✅:
Ringkaskan teks di bawah sebagai senarai berbutir bagi perkara yang paling penting.
Teks: """
{text input here}
"""3. Nyatakan konteks, hasil, panjang, format, gaya dan sebagainya yang dikehendaki dengan khusus, jelas dan sedetail mungkin
Nyatakan konteks, hasil, panjang, format, gaya dan sebagainya dengan khusus
Kurang berkesan ❌:
Tulis sebuah puisi tentang OpenAI. Lebih baik ✅:
Tulis sebuah puisi pendek yang memberi inspirasi tentang OpenAI, dengan fokus pada pelancaran produk DALL-E baru-baru ini (DALL-E ialah model ML teks kepada imej) dalam gaya {famous poet}4. Jelaskan format output yang dikehendaki melalui contoh
Kurang berkesan ❌:
Ekstrak entiti yang disebut dalam teks di bawah. Ekstrak 4 jenis entiti berikut: nama syarikat, nama orang, topik khusus dan tema.
Teks: {text}Tunjukkan dan terangkan - model memberikan respons yang lebih baik apabila ditunjukkan keperluan format yang khusus. Ini juga memudahkan penghuraian berprogram bagi beberapa output dengan lebih andal.
Lebih baik ✅:
Ekstrak entiti penting yang disebut dalam teks di bawah. Mula-mula ekstrak semua nama syarikat, kemudian ekstrak semua nama orang, kemudian ekstrak topik khusus yang sesuai dengan kandungan, dan akhirnya ekstrak tema umum yang menyeluruh
Format yang dikehendaki:
Nama syarikat: <comma_separated_list_of_company_names>
Nama orang: -||-
Topik khusus: -||-
Tema umum: -||-
Teks: {text}5. Mulakan dengan zero-shot, kemudian few-shot; jika kedua-duanya tidak berhasil, barulah fine-tune
✅ Zero-shot
Ekstrak kata kunci daripada teks di bawah.
Teks: {text}
Kata kunci:✅ Few-shot - berikan beberapa contoh
Ekstrak kata kunci daripada teks yang sepadan di bawah.
Teks 1: Stripe menyediakan API yang boleh digunakan oleh pembangun web untuk mengintegrasikan pemprosesan pembayaran ke dalam laman web dan aplikasi mudah alih mereka.
Kata kunci 1: Stripe, pemprosesan pembayaran, API, pembangun web, laman web, aplikasi mudah alih
##
Teks 2: OpenAI telah melatih model bahasa tercanggih yang sangat baik dalam memahami dan menjana teks. API kami menyediakan akses kepada model ini dan boleh digunakan untuk menyelesaikan hampir apa-apa tugasan yang melibatkan pemprosesan bahasa.
Kata kunci 2: OpenAI, model bahasa, pemprosesan teks, API.
##
Teks 3: {text}
Kata kunci 3:✅Fine-tune: lihat amalan terbaik fine-tune di sini.
6. Kurangkan huraian yang “berbunga-bunga” dan tidak tepat
Kurang berkesan ❌:
Penerangan untuk produk ini sepatutnya agak pendek, hanya beberapa ayat, dan tidak terlalu panjang.Lebih baik ✅:
Gunakan perenggan 3 hingga 5 ayat untuk menerangkan produk ini.7. Daripada hanya menyatakan perkara yang tidak patut dilakukan, nyatakan perkara yang patut dilakukan sebagai ganti
Kurang berkesan ❌:
Berikut ialah perbualan antara Ejen dan Pelanggan. JANGAN MINTA NAMA PENGGUNA ATAU KATA LALUAN. JANGAN ULANG.
Pelanggan: Saya tidak dapat log masuk ke akaun saya.
Ejen:Lebih baik ✅:
Berikut ialah perbualan antara Ejen dan Pelanggan. Ejen akan cuba mendiagnosis masalah dan mencadangkan penyelesaian, sambil mengelak daripada bertanya apa-apa soalan berkaitan PII. Daripada meminta PII, seperti nama pengguna atau kata laluan, rujuk pengguna kepada artikel bantuan www.samplewebsite.com/help/faq
Pelanggan: Saya tidak dapat log masuk ke akaun saya.
Ejen:8. Khusus untuk penjanaan kod - gunakan “kata pembuka” untuk mendorong model ke arah corak tertentu
Kurang berkesan ❌:
# Tulis fungsi python ringkas yang
# 1. Meminta saya memasukkan nombor dalam batu
# 2. Menukar batu kepada kilometerDalam contoh kod di bawah, penambahan “import” memberi petunjuk kepada model bahawa ia patut mula menulis dalam Python. (Begitu juga, “SELECT” ialah petunjuk yang baik untuk permulaan pernyataan SQL.)
Lebih baik ✅:
# Tulis fungsi python ringkas yang
# 1. Meminta saya memasukkan nombor dalam batu
# 2. Menukar batu kepada kilometer
import9. Gunakan ciri Jana Apa-apa Sahaja
Pembangun boleh menggunakan ciri 'Jana Apa-apa Sahaja' untuk menerangkan tugasan atau output bahasa semula jadi yang dijangka, lalu menerima prompt yang disesuaikan.
Ketahui lebih lanjut tentang penggunaan ciri 'Jana Apa-apa Sahaja'.
Parameter
Secara umumnya, kami mendapati bahawa `model` dan `temperature` ialah parameter yang paling lazim digunakan untuk mengubah output model.
`model` - Model berprestasi lebih tinggi biasanya lebih mahal dan mungkin mempunyai latensi yang lebih tinggi.
`temperature` - Ukuran kekerapan model mengeluarkan token yang kurang berkemungkinan. Semakin tinggi
temperature, semakin rawak (dan biasanya kreatif) outputnya. Namun begitu, ini tidak sama dengan “kebenaran”. Untuk kebanyakan kes penggunaan berasaskan fakta seperti pengekstrakan data dan soal jawab yang benar,temperature0 adalah terbaik.`max_completion_tokens` (panjang maksimum) - Tidak mengawal panjang output, tetapi menetapkan had pemotongan keras bagi penjanaan token. Sebaik-baiknya anda tidak kerap mencapai had ini, kerana model anda akan berhenti sama ada apabila ia menganggap tugasan sudah selesai, atau apabila ia mencapai urutan henti yang anda takrifkan.
`stop` (urutan henti) - Satu set aksara (token) yang, apabila dijana, akan menyebabkan penjanaan teks berhenti.
Untuk huraian parameter lain, lihat rujukan API.
