Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Topik dan strategi lanjutan
Topik di halaman ini
Multi-objective optimasi
Advanced Prompt Optimization menerima satu metrik per run — skor skalar tunggal per sampel. Namun, secara implisit mendukung pengoptimalan multi-tujuan (multi-dimensi): Anda dapat menggabungkan beberapa tujuan menjadi satu skalar (metrik komposit) dan layanan mengoptimalkan prompt terhadap bundel itu. Bagian ini mencakup pola yang kami rekomendasikan, kapan masing-masing sesuai, dan mode kegagalan yang harus diperhatikan.
Ini berlaku di seluruh vertikal — di mana pun Anda peduli tentang lebih dari satu hal pada saat yang sama: akurasi + nada, kebenaran panggilan alat + keamanan, kesetiaan + keringkasan, keterlambatan-keramahan + kelengkapan, dan banyak lagi.
Mengapa satu metrik sebenarnya multi-tujuan
Dua fakta tentang sistem membuat ini berfungsi:
Metrik mengembalikan nilai float tunggal per sampel. Loop umpan balik pengoptimalan membaca skalar ini sebagai sinyal pengoptimalan. Anda dapat menghitungnya dari sejumlah sub-skor di bawah tenda.
-
Kedua backend metrik sudah mengumpulkan sub-skor secara internal.
Nilai LLM-as-a-Judge template default pada tiga dimensi (Akurasi Jawaban, Kelengkapan Jawaban, Kualitas Ekspresi), menetapkan bobot, dan memancarkan
Overallskor tunggal yang dinormalisasi ke [0, 1]. Kriteria khusus digabungkan ke dalam skalar yang sama. Untuk informasi selengkapnya, lihat Kustom LLM-as-a-judge.Metrik Lambda/kode khusus mengembalikan satu angka, dan Anda mengontrol cara penghitungannya — termasuk gabungan sub-tujuan apa pun.
Jadi “satu metrik per run” adalah kontrak tentang bentuk sinyal, bukan batas pada apa yang dapat Anda optimalkan.
Pola untuk menggabungkan beberapa tujuan ke dalam satu metrik
Pilih satu berdasarkan bagaimana tujuan Anda berhubungan satu sama lain.
Pola 1 — Jumlah tertimbang (paling umum)
final = w₁·s₁ + w₂·s₂ + ... + wₖ·sₖ, dengan bobot dijumlahkan menjadi 1.
Kapan menggunakan: Tujuan kira-kira independen dan Anda dapat memberi peringkat. Trade-offs dapat diterima — meningkatkan satu dengan mengorbankan yang lain tidak apa-apa selama jumlahnya naik.
Memilih bobot:
Berat berdasarkan kepentingan bagi pengguna, bukan berdasarkan frekuensi dalam kumpulan data.
Mulai kasar:
0.5 / 0.3 / 0.2baik-baik saja. Jangan terlalu menyetel bobot — itu masalah pengoptimalan yang terpisah.
Contoh (agentik/penggunaan alat):
final = 0.5 * tool_correctness + 0.3 * answer_correctness + 0.2 * format_compliance
Pola 2 - Hard-fail gerbang (kritis keselamatan)
Tentukan satu atau lebih tujuan gating. Jika ada gerbang yang gagal, skornya adalah 0 (atau beberapa lantai) terlepas dari sisanya. Jika tidak, skor adalah jumlah tertimbang dari tujuan yang tersisa.
if not safety_check_passed: return 0.0 if wrong_tool_called_for_destructive_action: return 0.0 return 0.6 * accuracy + 0.4 * tone
Kapan menggunakan: Se tidaknya satu tujuan tidak dapat dinegosiasikan (kebocoran PII, akun yang salah dimodifikasi, penolakan konten yang dilarang). Gunakan ini setiap kali prompt “bagus rata-rata” tidak dapat diterima jika gagal pada bilah pengaman bahkan sesekali.
Mengapa ini mengalahkan pembobotan saja: Dengan bobot saja, pengoptimal dapat menukar keamanan dengan kualitas dan tetap mendaki skor. Sebuah gerbang membuat pertukaran menjadi tidak mungkin dengan konstruksi.
Pola 3 - Kendala + hadiah () Pareto-style
Pilih tujuan yang paling penting sebagai hadiah. Ekspresikan sisanya sebagai kendala yang, ketika dilanggar, kurangi dari hadiah (daripada menolaknya).
reward = task_accuracy penalty = 0.0 if response_too_long: penalty += 0.1 if missed_required_disclosure: penalty += 0.2 return max(0.0, reward - penalty)
Kapan menggunakan: Anda ingin satu tujuan utama untuk memimpin, tetapi tujuan sekunder lunak harus tetap membentuk prompt. Kurang rapuh dari gerbang keras, kurang ambigu dari jumlah tertimbang.
Pola 4 - Lambda luar, LLM-as-a-Judge dalam (direkomendasikan untuk campuran fuzzy + struktural)
Metrik Lambda menghitung sub-skor deterministik (regex, JSON parse, validasi skema) dan memanggil LLM-as-a-Judge sub-evaluasi untuk bagian fuzzy (nada, kesetiaan, bantuan) di dalam fungsi Lambda. Kemudian menggabungkan mereka menjadi satu skalar.
def compute_score(prompt, prediction, gold, ...): structural = grade_format_and_tools(prediction) # 0..1 from regex semantic = call_llm_judge(prediction, gold, criteria) # 0..1 from LLMJ if structural < 1.0 and is_safety_critical(prompt): return 0.0 return 0.6 * semantic + 0.4 * structural
Kapan menggunakan: Tujuan Anda memadukan “mudah diuji dalam kode” (format, nama alat, panjang, keberadaan kutipan) dengan “membutuhkan model untuk menilai” (nada, kesetiaan, bantuan). Ini seringkali lebih bersih daripada meminta satu LLM-as-a-Judge prompt untuk menghasilkan skor komposit tunggal, karena bagian deterministik tidak akan hanyut run-to-run.
Pola 5 — Multi-dimension LLM-as-a-Judge (tanpa Lambda)
Gunakan LLM-as-a-Judge aliran bawaan, opsional dengan a customLLMJConfig.customLLMJPrompt yang menentukan dimensi dan bobot Anda sendiri. Hakim memancarkan skor per dimensi dan anOverall; sistem mengurai Overall (atau rata-rata dimensi jika Overall hilang) menjadi skalar [0, 1].
Kapan menggunakan: Semua tujuan Anda semantik/fuzzy dan Anda tidak memiliki sub-cek deterministik. Tercepat untuk penulis. Perhatikan varians penilaian — jalankan kembali kumpulan data yang sama dua kali dan lihat stabilitas skor sebelum mempercayainya sebagai sinyal pengoptimalan.
Memilih pola
| # | Kau punya... | Gunakan |
|---|---|---|
| 1 | 2—4 tujuan fuzzy, semua semantik | Pola 5 (multi-dimensi LLM-as-a-Judge) |
| 2 | 2—4 tujuan mencampur struktural dan semantik | Pola 4 (Lambda luar+ LLM-as-a-Judge dalam) |
| 3 | Setidaknya satu kriteria yang tidak dapat dinegosiasikan safety/correctness | Pola 2 (hard fail gate) — gabungkan dengan 1 atau 4 |
| 4 | Satu tujuan utama yang jelas + preferensi lunak | Pola 3 (kendala + hadiah) |
| 5 | Beberapa tujuan independen yang hampir sama | Pola 1 (jumlah tertimbang) |
Anda dapat menggabungkan pola. Metrik produksi yang khas adalah “jumlah tertimbang+gerbang yang sulit untuk keselamatan.”
Mode kegagalan yang harus diperhatikan
Hadiah peretasan pada bentuk permukaan. Jika sub-skor Anda adalah “apakah respons mengandung kata 'yakin',” pengoptimal akan menulis prompt yang memaksa “yakin” ke setiap output. Lebih suka sub-skor berdasarkan hasil (nama alat, nilai slot, validitas struktural) daripada kehadiran kata kunci.
Hakim melayang. LLM-as-a-Judge Metrik multi-dimensi yang bobotnya bervariasi per panggilan (karena hakim diminta untuk memilihnya) memberikan sinyal optimasi yang bising. Sematkan bobot dalam kriteria kustom Anda, atau pindahkan pembobotan dimensi ke kode Lambda.
Skor komposit jenuh. Jika metrik mencapai 0,95 dengan cepat dan tetap di sana, sub-skor Anda terlalu lunak. Kencangkan rubrik; pertimbangkan untuk menaikkan bar maksimum (misalnya, kredit sebagian menjadi 0, bukan 1) sehingga pengoptimal memiliki ruang kepala.
Sub-objectives Konflik secara langsung. “Keringkasan” vs. “kelengkapan” adalah pertukaran nyata. Pola jumlah berbobot memilih titik operasi di perbatasan itu; jika Anda tidak menyukainya, ubah bobotnya.
Pre-launch daftar periksa
Hitung metrik pada prompt awal di atas kumpulan data lengkap dan periksa rata-rata per dimensi, bukan hanya skalar. Jika satu dimensi sudah jenuh, pertimbangkan untuk menjatuhkannya dari bundel.
Spot-check 5 sampel dengan tangan. Apakah putusan metrik sesuai dengan penilaian Anda? Jika tidak, perbaiki metrik sebelum mengoptimalkan prompt.
Mengoptimalkan petunjuk multi-putaran dan bertahap
Advanced Prompt Optimization mengoptimalkan template prompt tunggal terhadap evaluasi per sampel. Ini tidak secara native turn-aware — tidak dapat mengulangi dialog atau mengoptimalkan perilaku pada giliran tertentu secara asli. Pro mpt bertahap adalah template prompt di mana percakapan multi-putaran atau alur kerja menggunakan kembali prompt yang sama di seluruh belokan, dan prompt itu sendiri berisi instruksi untuk setiap tahap, langkah, atau fase alur kerja. Untuk mengoptimalkan petunjuk ini, ratakan status dialog ke dalam variabel input template, panggang instruksi sistem yang ingin Anda sempurnakan ke dalamnyapromptTemplate, dan periksa belokan yang benar-benar Anda pedulikan dengan respons referensi per sampel.
Pola ini bersifat vertikal-agnostik. Ini berlaku di mana pun model dipanggil berulang kali dengan konteks yang berkembang - aliran layanan pelanggan, loop penggunaan alat agen, penalaran multi-langkah, bimbingan belajar, giliran asisten kode, QA berbasis dokumen, alur kerja triase, dan banyak lagi.
Apa yang sebenarnya dioptimalkan oleh Advanced Prompt Optimization
Input: Sebuah
promptTemplatestring dengan{{placeholder}}variabel.Per sampel: Mas ing-masing
evaluationSamples[i]memberikan nilai untuk variabel-variabel tersebut dan areferenceResponse. Pengoptimal menjalankan inferensi, mengevaluasi, umpan balik, dan menulis ulang secara independen per sampel, kemudian menggabungkan metrik di seluruh sampel.Keluaran: Yang disempurnakan
promptTemplate. Variabel, dataset, dan metrik adalah input tetap; hanya template yang berubah.
Apa pun yang Anda inginkan dioptimalkan harus hidup di dalam promptTemplate dirinya sendiri. Hal-hal yang bervariasi per sampel (riwayat percakapan, kueri pengguna saat ini, konteks yang diambil) adalah{{variables}}. Instruksi sistem yang Anda ingin disempurnakan adalah bagian dari template - tidak pernah menjadi variabel input, atau layanan tidak memiliki apa pun untuk ditulis ulang.
Jika Anda ingin layanan meningkatkan perilaku pada belokan N, ekspresikan belokan N sebagai variabel prompt-plus-input-yang dirender untuk satu sampel, dengan referenceResponse menjadi output model turn-N yang diinginkan.
Pola A — Stage-at-a-time (starter yang disarankan)
Optimalkan satu fase dialog pada satu waktu. Setiap sampel evaluasi mewakili satu titik keputusan dalam fase itu.
“Tahap” di sini adalah apa pun yang dapat Anda gambarkan dengan serangkaian kriteria keberhasilan yang koheren. Contoh dengan vertikal:
Agentik/penggunaan alat: belokan formasi rencana, belokan pemilihan alat, giliran interpretasi hasil-alat, giliran jawaban akhir.
Dukungan pelanggan: asupan, verifikasi, tindakan, konfirmasi, penutupan.
Bimbingan belas/ pendidikan: penilaian-pengetahuan, jelas-konsep, check-pemahaman, meringkas.
Dokumen QA: jawaban berdasarkan pengambilan, klarifikasi tindak lanjut, pergantian kutipan.
Asisten pengkodean: klarifikasi spesifikasi, pembuatan kode, kode-review/fix, tes-tulis.
Kapan menggunakan Pola A
Anda dapat menyebutkan fase yang berbeda dengan kriteria keberhasilan yang berbeda.
Satu fase adalah menyeret kualitas ke bawah dan Anda ingin memperbaikinya tanpa mengganggu orang lain.
Anda menginginkan iterasi cepat dan sinyal umpan balik yang ketat dan dapat di-debug.
Bentuk templat
Instruksi sistem khusus tahap dimasukkan ke dalam template (inilah yang ditulis ulang layanan). Hanya riwayat percakapan dan giliran saat ini yang menjadi variabel. Struktur di bawah ini adalah ilustratif, tidak ditentukan. Gunakan pembatas atau tata letak apa pun yang paling ditangani model Anda. Satu-satunya persyaratan adalah: (a) instruksi sistem yang ingin Anda optimalkan langsung di dalam template, dan (b) variabel per sampel direferensikan sebagai{{variablename}}.
You are an assistant in the {STAGE_NAME} phase of a multi-turn task. - ...the policy / goals / format / tool-use rules for this phase... - ...constraints the model must satisfy at this point in the conversation... Conversation so far: {{conversation_so_far}} User's current message: {{user_query}}
Bentuk sampel
{ "inputVariables": [ {"conversation_so_far": "user: ...\nassistant: ...\n... (turns 1..N-1)"}, {"user_query": "...the user input that triggers this stage..."} ], "referenceResponse": "...the assistant output that satisfies the stage's success criteria..." }
Pro dan kontra
Kelebihan: Sinyal umpan balik yang ketat, petunjuk yang lebih kecil, pengoptimalan berjalan lebih cepat, lebih mudah untuk membuat metrik terfokus.
Kekurangan: Tidak menangkap penyimpangan lintas tahap; Anda akan menjalankan layanan sekali per tahap dan mungkin memerlukan tes integrasi akhir.
Pola B - Percakapan rata penuh (lanjutan)
Optimalkan satu prompt monolitik besar yang memiliki seluruh kebijakan multi-tahap. Setiap sampel adalah dialog lengkap hingga putaran probe.
Kapan menggunakan Pola B
Prompt produksi Anda sudah monolitik dan Anda tidak ingin membaginya.
Anda ingin pengoptimal melihat bagaimana belokan sebelumnya mengatur putaran selanjutnya, sehingga penulisan ulangnya mempertahankan aliran lintas tahap.
Kebenaran pada putaran probe tergantung pada konteks yang dibangun di seluruh tahap (misalnya, “pada giliran N, fakta yang benar harus sudah direferensikan” atau “alat yang tepat pasti sudah dipanggil”).
Bentuk templat
Prompt sistem monolitik penuh, multi-fase berada di dalam template. Layanan menulis ulang badan ini selama pengoptimalan. Sejarah dan giliran saat ini tetap variabel. Pilih tata letak apa pun yang ditangani model Anda dengan baik; persyaratannya hanya instruksi yang akan dioptimalkan adalah bagian dari template dan data per sampel direferensikan melalui{{name}}.
You are an assistant for {TASK}. The conversation may proceed through phases: 1. {PHASE_1} — ... 2. {PHASE_2} — ... 3. {PHASE_3} — ... (...the entire multi-phase policy, tool-use rules, tone, formatting, refusal rules...) Conversation so far (turns 1..N-1, with role tags): {{conversation_so_far}} User's current message: {{user_query}}
Bentuk sampel (probe pada setiap belokan N)
{ "inputVariables": [ {"conversation_so_far": "user: ...\nassistant: ...\n[tool_call: X(...)]\n... (turns 1..N-1)"}, {"user_query": "...the user input at turn N..."} ], "referenceResponse": "...desired assistant output at turn N..." }
Mengapa Pola B dapat bekerja lebih baik dari Pola A
Pengoptimal melihat perkembangan tahap
conversation_so_far, sehingga umpan balik pengoptimalan dapat bernalar di seluruh tahapan sekaligus.Satu prompt yang dioptimalkan diterapkan tanpa menyatukan beberapa petunjuk tahap yang dioptimalkan, mengurangi pasca-pemrosesan untuk Anda.
Peringatan untuk Pola B
Stokastisitas di belokan sebelumnya. Putaran asisten produksi mungkin tidak selalu cocok dengan kal
conversation_so_farengan. Perlakukan sejarah kalengan sebagai lintasan yang diharapkan; dalam produksi, penyimpangan pada belokan sebelumnya dapat membatalkan pengoptimalan. Gunakan tangkapan percakapan nyata yang representatif daripada jalur bahagia yang disintesis.Biaya token. Sejarah panjang membebani biaya inferensi per percobaan. Layanan menjalankan banyak kandidat × sampel × iterasi. Anggaran sesuai, dan pertimbangkan untuk memotong ke putaran K terbaru ditambah ringkasan jika biaya adalah hambatan.
Bias respons referensi.
referenceResponseseharusnya apa yang akan dikatakan asisten yang benar mengingat sejarah itu. Jika respons referensi Anda terlalu sempit (hanya satu frasa yang dapat diterima), pengoptimal akan terlalu cocok untuk itu. Lebih suka metrik yang menilai hasil (nama alat, nilai slot, keputusan) daripada kecocokan bentuk permukaan jika memungkinkan.
Tool-call verifikasi pada giliran tertentu
Layanan melihat output teks asisten. Untuk menilai “apakah model memanggil alat X dengan arg kanan di belokan N,” pilih salah satu:
Konvensi dalam output: Mintalah asisten memancarkan token terstruktur seperti
<tool>X(arg=...)</tool>dan menilai dengan regex/JSON parse dalam metrik Lambda. Termurah, paling dapat diandalkan.LLM-as-a-Judge kriteria khusus: Berikan a
customLLMJPromptyang bertanya kepada hakim: “Apakah tanggapan (a) beri nama alatX, (b) menyertakan argumenarg, (c) cocok dengan kata-kata yang diperlukanY?” Setiap sub-cek adalah +1; agregat. Mudah ditulis, lebih banyak variasi.Metrik lambda dengan simulasi hilir: Jika Anda memiliki harness eksekusi alat, jalankan keluaran model melaluinya dan beri skor pada efek samping yang diamati. Kesetiaan tertinggi, sebagian besar pengaturan.
Untuk kriteria gabungan di banyak belokan atau banyak sub-pemeriksaan (kebenaran alat dan nada dan kelengkapan), lihat Multi-objective optimasi bagian.
Jalur yang direkomendasikan
Mulailah dengan Pola A di atas panggung yang paling merusak kualitas. Dapatkan metrik yang berfungsi, kumpulan data sampel 20—50, dan satu pengoptimalan berjalan ujung ke ujung. Ini memvalidasi dataset dan metrik Anda sebelum Anda berinvestasi dalam menjalankan Pola B yang lebih besar.
Kemudian jalankan Pola B sekali dengan prompt monolitik penuh dan metrik komposit multi-tujuan untuk menangkap regresi lintas tahap Pola A dapat dilewatkan.
Iterasi dataset sebelum mengulangi prompt. Jika layanan menulis ulang metrik Anda untuk mendaki bukit tetapi perilaku produksi tidak membaik, metrik atau kumpulan data sering menjadi masalah.
Kapan tidak menggunakan Advanced Prompt Optimization untuk multi-turn
Kebijakan dialog/bug state-machine (logika transisi tahap yang salah): penulisan ulang prompt datar tidak dapat memperbaikinya. Perbaiki layer orkestrasi terlebih dahulu.
Skema alat salah: Layanan tidak akan mengubah definisi alat. Itu hanya dapat mengubah prompt yang meminta model untuk menggunakannya.
Pergeseran antara sejarah kaleng dan riwayat langsung: Jika percakapan nyata sangat berbeda dari sampel evaluasi Anda setelah beberapa putaran, sinyal pengoptimalan Pola B lemah. Menangkap jejak produksi nyata yang dapat diterima untuk pengoptimalan dapat membantu di sini selain keadaan ideal.
Perilaku yang diperlukan tergantung pada status pribadi yang tidak pernah dilihat pengoptimal (misalnya, data akun pengguna yang hanya dipelajari model melalui panggilan alat): buat status itu eksplisit
conversation_so_faruntuk sampel probe, atau terima bahwa layanan hanya dapat menyetel perilaku permukaan.
Daftar periksa pemula
Pilih putaran probe yang Anda pedulikan. Masing-masing menjadi satu atau lebih sampel.
Tentukan Pola A atau B (atau keduanya — A dulu, lalu B).
Bangun 20+ sampel representatif dengan
referenceResponsenilai realistisconversation_so_fardan bersih.