AI serija intervjujev 12: Kako optimizirati Prompt?
Optimizacija promptov (Prompt Engineering / Optimization) je ključna veščina, da veliki jezikovni modeli "ubogajo". Še posebej v sistemih RAG neposredno določa, ali je model pripravljen zvesto slediti pridobljenim vsebinam, se izogniti halucinacijam in upoštevati oblikovne standarde izhoda.
1. Osnovna načela optimizacije promptov
- Jasnost > kompleksnost: Preprosta, neposredna navodila so pogosto učinkovitejša od domišljene verige misli.
- Dovolj omejitev: Jasno povejte modelu, "kaj sme in česa ne sme storiti".
- Zagotovite primere: Few-shot je bolj stabilen kot zero-shot.
- Preverljivo: Naj model izpiše reference ali stopnjo zaupanja, da omogoči nadaljnje presoje.
- Iterativno optimiziranje: Začnite z osnovo in spreminjajte le eno spremenljivko naenkrat, nato primerjajte učinke.
2. Specifične tehnike optimizacije (od lažjih k težjim)
1. Dodelitev vloge (System Prompt)
Ste strokovni pomočnik za podporo strankam. Na vprašanja lahko odgovorite le na podlagi spodaj navedenih [referenčnih gradiv].
Če ne poznate odgovora, neposredno recite "v gradivu ni ustreznih informacij" in ne izmišljujte si.
- Namen: Postavljanje meja in tona.
- Točke optimizacije: Ton (strokoven/prijazen), stopnja omejitev (stroga/ohlapna).
2. Jasna navodila
❌ Slabo: "Odgovorite na vprašanje uporabnika."
✅ Dobro: "Odgovorite izključno na podlagi spodnjih [referenčnih gradiv]. Če referenčna gradiva ne vsebujejo odgovora, odgovorite z 'Ne morem odgovoriti na to vprašanje'."
3. Nadzor oblike izhoda
Izhod v naslednji obliki JSON:
{
"answer": "vaš odgovor",
"confidence": "visoka/srednja/nizka",
"sources": [1, 3]
}
- Uporaba: Olajša nadaljnjo obdelavo, citiranje in odpravljanje napak.
4. Primeri few-shot (zelo učinkovito)
Primer 1:
Vprašanje: Koliko dni letnega dopusta imam?
Referenčna gradiva: Pravila o letnem dopustu: 5 dni po 1 letu, 10 dni po 10 letih.
Odgovor: 5 dni po 1 letu, 10 dni po 10 letih.
Primer 2:
Vprašanje: Kako se izračuna nadurno delo?
Referenčna gradiva: Nadurno delo med tednom 1,5x, ob koncu tedna 2x.
Odgovor: Med tednom 1,5x, ob koncu tedna 2x.
Zdaj odgovorite:
Vprašanje: {vprašanje uporabnika}
Referenčna gradiva: {pridobljene vsebine}
Odgovor:
- Nasvet: Primeri naj pokrivajo različne težavnostne stopnje, najbolje vključiti tudi primer "ni mogoče odgovoriti".
5. Obvezno citiranje
Na koncu odgovora označite vir z [citation:X]. Na primer: "Letni dopust je 5 dni[citation:1]."
Če združujete več virov, jih označite ločeno.
6. Nastavitev praga zavrnitve
- Trda omejitev: "Če so referenčna gradiva popolnoma nepovezana z vprašanjem, odgovorite 'gradiva niso povezana'."
- Mehka omejitev: Kombinirajte z oceno zaupanja iskanja; pod pragom samodejno uporabite vejo zavrnitve.
7. Veriga misli (Chain-of-Thought) za večstopenjsko sklepanje
Vprašanje: Kdo je šef Zhang Sana?
Koraki: 1. Najprej ugotovite oddelek Zhang Sana. 2. Nato ugotovite vodjo tega oddelka. 3. Podajte končni odgovor.
Razmislite po korakih in nato izpišite.
8. Negativna navodila (Negative Prompting)
Ne izmišljujte si odgovorov. Ne uporabljajte nejasnih besed, kot so "morda", "morebiti". Ne izpisujte nobenih številk, ki niso iz referenčnih gradiv.
3. Kako oceniti kakovost Prompt-a?
| Indikator | Pomen | Kako meriti |
|---|---|---|
| Zvestoba | Ali odgovor strogo temelji na referenčnih gradivih | Ročno ali z RAGAS Faithfulness |
| Natančnost zavrnitve | Ali zavrne, ko bi moral | Izračun na testni množici brez odgovorov |
| Stopnja upoštevanja formata | Ali izpiše JSON / citate po zahtevi | Ujemanje z regularnimi izrazi |
| Zadovoljstvo uporabnikov | Ali je odgovor koristen | Spletne povratne informacije / A/B testiranje |
Predlog: Pripravite majhen testni nabor (20-50 mejnih primerov) in po vsaki spremembi prompt-a poženite test ter zabeležite spremembe.
4. Pogoste pasti in smeri optimizacije
| Težava | Možen vzrok | Način optimizacije |
|---|---|---|
| Model ignorira referenčna gradiva in odgovarja sam | Navodila niso dovolj močna | Spremenite v "izključno na podlagi spodnjih gradiv" in z few-shot prikažite zavrnitev |
| Model vedno reče "ne vem" | Previsok prag zavrnitve | Znižajte prag ali preverite kakovost iskanja |
| Izhodni format je zmeden, ne upošteva JSON | Navodila niso jasna | Dodajte strog primer formata ali uporabite function calling |
| Odgovor je predolg/prekratek | Ni določene dolžine | "Odgovorite v največ treh stavkih" |
| Večstopenjsko sklepanje je napačno | Model nima dovolj sklepalnih sposobnosti | Zahtevajte postopno razmišljanje ali zamenjajte z močnejšim modelom |
| Halucinacije številk/datumov | Model se zanaša na lastno znanje | Poudarite "ne uporabljajte nobenih številk iz spomina, glejte le gradiva" |
评论
暂无已展示的评论。
发表评论(匿名)