AI sērijas intervija 12: Kā optimizēt Prompt?
Prompt optimizācija (Prompt Engineering / Optimization) ir galvenā prasme, lai lielie valodas modeļi "klausītu", īpaši RAG sistēmās, tieši nosakot, vai modelis ir gatavs uzticīgi balstīties uz iegūto saturu, izvairīties no halucinācijām un ievērot formāta noteikumus.
1. Prompt optimizācijas pamatprincipi
- Skaidrība > Sarežģītība: Vienkārši, tieši norādījumi bieži vien ir efektīvāki nekā izdomātas domāšanas ķēdes.
- Dodiet pietiekami daudz ierobežojumu: Skaidri pasakiet modelim, "ko drīkst un ko nedrīkst darīt".
- Sniedziet piemērus: Few-shot ir stabilāks nekā Zero-shot.
- Padariet pārbaudāmu: Lieciet modelim izvadīt atsauces vai ticamības līmeni, lai atvieglotu turpmāko spriešanu.
- Iteratīvā 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 viegla līdz grūtam)
1. Lomu iestatīšana (System Prompt)
Jūs esat profesionāls klientu atbalsta asistents. Jūs drīkstat atbildēt tikai uz jautājumiem, pamatojoties uz zemāk sniegto [Atsauces materiāls].
Ja nezināt atbildi, vienkārši sakiet "Atsauces materiālā nav atbilstošas informācijas", neizdomājiet pats.
- Nozīme: Nosaka robežas un toni.
- Uzlabojamais punkts: Tonis (profesionāls/draudzīgs), ierobežojumu stiprums (stingrs/maigs).
2. Skaidri norādījumi
❌ Slikti: “Atbildiet uz lietotāja jautājumu.”
✅ Labi: “Balstoties tikai uz zemāk sniegto [Atsauces materiālu]. Ja atsauces materiāls nesatur atbildi, atbildiet 'Es nevaru atbildēt uz šo jautājumu'.”
3. Izejas formāta kontrole
Lūdzu, izvadiet šādā JSON formātā:
{
"atbilde": "Jūsu atbilde",
"ticamība": "augsta/vidēja/zema",
"avoti": [1, 3]
}
- Nozīme: Atvieglo turpmāko parsēšanu, atsauču un atkļūdošanu.
4. Few-shot piemēri (ļoti efektīvi)
1. piemērs:
Jautājums: Cik dienu ir atvaļinājumam?
Atsauces materiāls: Atvaļinājuma noteikumi: 1 gads - 5 dienas, 10 gadi - 10 dienas.
Atbilde: 1 gads - 5 dienas, 10 gadi - 10 dienas.
2. piemērs:
Jautājums: Kā tiek aprēķināta virsstundu samaksa?
Atsauces materiāls: Darba dienā 1.5 reizes, brīvdienā 2 reizes.
Atbilde: darba dienā 1.5 reizes, brīvdienā 2 reizes.
Tagad atbildiet:
Jautājums: {lietotāja jautājums}
Atsauces materiāls: {iegūtais saturs}
Atbilde:
- Padoms: Piemēriem jāaptver dažādas grūtības pakāpes, vēlams iekļaut arī “nevaru atbildēt” piemēru.
5. Piespiedu atsauces
Atbildes beigās atzīmējiet avota numuru ar [citation:X]. Piemēram: “Atvaļinājums ir 5 dienas [citation:1].”
Ja izmantojat vairākus materiālus, atzīmējiet katru atsevišķi.
6. Atteikuma sliekšņa iestatīšana
- Stingrs ierobežojums: “Ja atsauces materiāls pilnībā neatbilst jautājumam, atbildiet 'Materiāls nav atbilstošs'.”
- Maigs ierobežojums: Apvienojiet ar iegūšanas ticamības punktu skaitu, ja tas ir zem sliekšņa, automātiski izvēlieties atteikuma zaru.
7. Domāšanas ķēde (Chain-of-Thought) daudzpakāpju spriešanai
Jautājums: Kas ir Džao San priekšnieks?
Soļi: 1. Vispirms noskaidrojiet Džao San nodaļu. 2. Pēc tam noskaidrojiet šīs nodaļas vadītāju. 3. Sniedziet galīgo atbildi.
Lūdzu, pēc soļu pārdomāšanas izvadiet.
8. Negatīvi norādījumi (Negative Prompting)
Neizdomājiet atbildes. Neizmantojiet neskaidrus vārdus kā "var būt", "iespējams". Neizvadiet nekādus skaitļus ārpus atsauces materiāla.
3. Kā novērtēt Prompt kvalitāti?
| Metrika | Nozīme | Kā mērīt |
|---|---|---|
| Uzticība | Vai atbilde stingri balstās uz atsauces materiālu | Manuāli vai ar RAGAS Faithfulness |
| Atteikuma precizitāte | Vai tiek atteikts atbildēt, kad tas nepieciešams | Aprēķināt testa kopā bez atbildes |
| Formāta ievērošanas līmenis | Vai izvade ir JSON / ar atsaucēm, kā prasīts | Regulārā izteiksme |
| Lietotāju apmierinātība | Vai atbilde ir noderīga | Tiešsaistes atsauksmes / A/B testi |
Ieteikums: Sagatavojiet nelielu testa kopu (20-50 robežgadījumu), pēc katras Prompt izmaiņas palaidiet to un reģistrējiet izmaiņas.
4. Biežākās lamatas un optimizācijas virzieni
| Problēmas izpausme | Iespējamais cēlonis | Optimizācijas metode |
|---|---|---|
| Modelis ignorē atsauces materiālu un atbild pats | Norādījumi nav pietiekami stingri | Mainiet uz “tikai pamatojoties uz zemāk minēto materiālu” un ar few-shot parādiet atteikumu |
| Modelis vienmēr saka “nezinu” | Atteikuma slieksnis pārāk augsts | Samaziniet slieksni vai pārbaudiet iegūšanas kvalitāti |
| Izejas formāts nav kārtībā, neatbilst JSON | Norādījumi nav skaidri | Pievienojiet stingrus formāta piemērus vai izmantojiet function calling |
| Atbilde ir pārāk gara/īsa | Nav norādīts garums | “Atbildiet ne vairāk kā 3 teikumos” |
| Daudzpakāpju spriešanas kļūda | Modeļa spriešanas spēja nav pietiekama | Prasiet soli pa solim spriešanu vai nomainiet pret spēcīgāku modeli |
| Parādās halucinēti skaitļi/datumi | Modelis paļaujas uz savām zināšanām | Uzsveriet “neizmantojiet nekādus skaitļus no savas atmiņas, skatieties tikai materiālu” |
评论
暂无已展示的评论。
发表评论(匿名)