AI sērija Intervija 12: Kā optimizēt promptu?
Promptu optimizācija (Prompt Engineering / Optimization) ir galvenā prasme, lai lielie valodas modeļi būtu "paklausīgi". Īpaši RAG sistēmās tas tieši ietekmē to, vai modelis uzticīgi balstīsies uz izgūto saturu, izvairīsies no halucinācijām un ievēros izvades formāta normas.
1. Promptu optimizācijas pamatprincipi
- Skaidrība > sarežģītība: vienkārši un tiešie norādījumi bieži vien ir efektīvāki nekā greznas domāšanas ķēdes.
- Dodiet pietiekami daudz ierobežojumu: skaidri pasakiet modelim, ko tas drīkst un ko nedrīkst darīt.
- Sniedziet piemērus: Few-shot ir stabilāks nekā Zero-shot.
- Pārbaudāms: lieciet modelim sniegt atsauces vai ticamības līmeni, lai atvieglotu turpmāko spriešanu.
- Iteratīva optimizācija: sāciet ar bāzes līniju, katru reizi mainiet tikai vienu mainīgo un salīdziniet rezultātus.
2. Konkrēti optimizācijas paņēmieni (no viegliem līdz sarežģītiem)
1. Lomas noteikšana (System Prompt)
Jūs esat profesionāls klientu apkalpošanas asistents. Jūs varat atbildēt tikai pamatojoties uz tālāk sniegtajiem [Atsauces materiāliem].
Ja nezināt atbildi, lūdzu, tieši sakiet "Atsauces materiālos nav attiecīgas informācijas", nevis izdomājiet pats.
- Funkcija: noteikt robežas un toni.
- Optimizācijas punkti: tonis (profesionāls / draudzīgs), ierobežojumu stiprums (stingrs / elastīgs).
2. Skaidri norādījumi
❌ Slikti: "Atbildiet uz lietotāja jautājumu."
✅ Labi: "Balstieties tikai uz tālāk sniegtajiem [Atsauces materiāliem]. Ja atsauces materiālos nav atbildes, atbildiet 'Es nevaru atbildēt uz šo jautājumu'."
3. Izvades formāta kontrole
Lūdzu, izvadiet šādā JSON formātā:
{
"answer": "jūsu atbilde",
"confidence": "augsta/vidēja/zema",
"sources": [1, 3]
}
- Lietojums: atvieglo turpmāku parsēšanu, atsauces un atkļūdošanu.
4. Few-shot piemēri (ļoti efektīvi)
1. piemērs:
Jautājums: Cik dienas ir ikgadējais atvaļinājums?
Atsauces materiāli: Ikgadējā atvaļinājuma noteikumi: pēc 1 gada – 5 dienas, pēc 10 gadiem – 10 dienas.
Atbilde: Pēc 1 gada – 5 dienas, pēc 10 gadiem – 10 dienas.
2. piemērs:
Jautājums: Kā tiek aprēķināta virsstundu samaksa?
Atsauces materiāli: Darba dienās virsstundas 1,5 reizes, brīvdienās 2 reizes.
Atbilde: Darba dienās 1,5 reizes, brīvdienās 2 reizes.
Tagad lūdzu atbildiet:
Jautājums: {lietotāja jautājums}
Atsauces materiāli: {izgūtais saturs}
Atbilde:
- Padoms: piemēriem jāaptver dažādas grūtības pakāpes, vislabāk iekļaut arī vienu "nevar atbildēt" piemēru.
5. Obligātas atsauces
Atbildes beigās norādiet avota numuru ar [citation:X]. Piemēram: "Ikgadējais atvaļinājums ir 5 dienas[citation:1]."
Ja izmantojat vairākus avotus, norādiet katru atsevišķi.
6. Atteikšanās sliekšņa noteikšana
- Stingrs ierobežojums: "Ja atsauces materiāli pilnībā neatbilst jautājumam, atbildiet 'Materiāli nav saistīti'."
- Elastīgs ierobežojums: apvienojiet ar izgūšanas ticamības punktu skaitu; ja tas ir zemāks par slieksni, automātiski izpildiet atteikšanās zaru.
7. Domāšanas ķēde (Chain-of-Thought) vairāku soļu spriešanai
Jautājums: Kas ir Džana San priekšnieks?
Soļi: 1. Vispirms noskaidrojiet Džana San nodaļu. 2. Pēc tam noskaidrojiet šīs nodaļas vadītāju. 3. Sniedziet galīgo atbildi.
Lūdzu, vispirms izdomājiet pa soļiem, tad izvadiet.
8. Negatīvi norādījumi (Negative Prompting)
Neizdomājiet atbildes. Neizmantojiet neskaidrus vārdus kā "iespējams", "varbūt". Neizvadiet nekādus skaitļus, kas nav atsauces materiālos.
3. Kā novērtēt promptu kvalitāti?
| Indikators | Nozīme | Kā mērīt |
|---|---|---|
| Uzticība | Vai atbilde stingri balstās uz atsauces materiāliem | Manuāli vai izmantojot RAGAS Faithfulness |
| Atteikšanās precizitāte | Vai modelis atsakās atbildēt, kad vajadzētu | Aprēķina testa komplektā bez atbildēm |
| Formāta ievērošanas līmenis | Vai izvade atbilst prasītajam JSON / atsauču formātam | Regulārās izteiksmes atbilstība |
| Lietotāju apmierinātība | Vai atbilde ir noderīga | Tiešsaistes atsauksmes / A/B testēšana |
Ieteikums: sagatavojiet nelielu testu kopu (20-50 robežgadījumu), katru reizi pēc promptu maiņas palaidiet to un reģistrējiet izmaiņas.
4. Bieži sastopamās nepilnības un optimizācijas virzieni
| Problēmas izpausme | Iespējamais cēlonis | Optimizācijas metode |
|---|---|---|
| Modelis ignorē atsauces materiālus un atbild pats | Norādījumi nav pietiekami stingri | Mainīt uz "Balstieties tikai uz tālāk sniegtajiem materiāliem" un izmantot few-shot ar atteikšanās piemēru |
| Modelis vienmēr saka "nezinu" | Atteikšanās slieksnis pārāk augsts | Samazināt slieksni vai pārbaudīt izgūšanas kvalitāti |
| Izvades formāts nekārtīgs, neatbilst JSON | Norādījumi nav skaidri | Pievienot stingru formāta piemēru vai izmantot function calling |
| Atbilde pārāk gara/īsa | Nav norādīts garums | "Atbildiet ne vairāk kā 3 teikumos" |
| Vairāku soļu spriešana neizdodas | Modeļa spriešanas spējas nepietiekamas | Prasīt soli pa solim spriešanu vai izmantot spēcīgāku modeli |
| Parādās halucinēti skaitļi/datumi | Modelis paļaujas uz savām zināšanām | Uzsvērt "neizmantojiet nekādus skaitļus no savas atmiņas, skatieties tikai atsauces materiālus" |
评论
暂无已展示的评论。
发表评论(匿名)