AI-intervjuserie 12: Hur optimerar man promptar?
Promptoptimering (Prompt Engineering / Optimization) är en avgörande färdighet för att få stora språkmodeller att "lyssna", särskilt i RAG-system, där det direkt avgör om modellen är villig att troget följa det hämtade innehållet, undvika hallucinationer och hålla sig till utdataformat.
1. Kärnprinciper för promptoptimering
- Tydlighet > komplexitet: Enkla, raka instruktioner är ofta effektivare än avancerade tankekedjor.
- Ge tillräckliga begränsningar: Tala tydligt om för modellen "vad den får och inte får göra".
- Ge exempel: Few-shot är mer stabilt än zero-shot.
- Verifierbar: Låt modellen ge källhänvisningar eller konfidensgrad för att underlätta nedströmsbedömning.
- Iterativ optimering: Börja från en baslinje, ändra bara en variabel i taget och jämför resultaten.
2. Specifika optimeringstips (från enkelt till svårt)
1. Rollinställning (System Prompt)
Du är en professionell kundtjänstassistent. Du får endast svara på frågor baserat på de [referensmaterial] som tillhandahålls nedan. Om du inte vet svaret, säg direkt "det finns ingen relevant information i materialet" och hitta inte på något själv.
- Syfte: Sätter gränser och ton.
- Optimering: Ton (professionell/vänlig), begränsningsstyrka (strikt/lös).
2. Tydliga instruktioner
❌ Dåligt: "Svara på användarens fråga."
✅ Bra: "Svara endast baserat på nedanstående [referensmaterial]. Om referensmaterialet inte innehåller svaret, svara 'Jag kan inte svara på denna fråga'."
3. Utdataformatkontroll
Vänligen skriv ut i följande JSON-format:
{
"answer": "Ditt svar",
"confidence": "Hög/Medel/Låg",
"sources": [1, 3]
}
- Användning: Underlättar nedströmsanalys, källhänvisning och felsökning.
4. Few-shot-exempel (mycket effektiva)
Exempel 1:
Fråga: Hur många semesterdagar har jag?
Referensmaterial: Semesterregler: 1 år = 5 dagar, 10 år = 10 dagar.
Svar: 1 år = 5 dagar, 10 år = 10 dagar.
Exempel 2:
Fråga: Hur beräknas övertidsersättning?
Referensmaterial: Övertid på vardagar 1,5 gånger, helger 2 gånger.
Svar: Vardagar 1,5 gånger, helger 2 gånger.
Svara nu:
Fråga: {användarfråga}
Referensmaterial: {hämtat innehåll}
Svar:
- Tips: Exemplen bör täcka olika svårighetsgrader, och det är bäst att inkludera ett exempel på "kan inte svara".
5. Tvingad källhänvisning
Ange källnummer med [citation:X] i slutet av svaret. Till exempel: "Semester är 5 dagar[citation:1]." Om flera källor används, ange var och en.
6. Ställ in tröskelvärdet för att avvisa svar
- Hård begränsning: "Om referensmaterialet är helt irrelevant för frågan, svara 'Materialet är irrelevant'."
- Mjuk begränsning: Kombinera med sökningens konfidensscore; om under tröskelvärdet, gå automatiskt till grenen för avvisat svar.
7. Tankekedja (Chain-of-Thought) för flerstegsresonemang
Fråga: Vem är Zhangsans chef?
Steg: 1. Ta reda på Zhangsans avdelning. 2. Ta reda på ansvarig för den avdelningen. 3. Ge slutligt svar.
Tänk steg för steg och skriv ut.
8. Negativ instruktion (Negative Prompting)
Hitta inte på svar. Använd inte otydliga ord som "kanske" eller "möjligen". Mata inte ut några siffror som inte finns i referensmaterialet.
3. Hur utvärderar man kvaliteten på en prompt?
| Metrik | Betydelse | Hur mätas |
|---|---|---|
| Trohet | Om svaret är strikt baserat på referensmaterial | Manuell eller RAGAS Faithfulness |
| Noggrannhet vid avvisade svar | Om det avvisar när det borde | Beräknas på testset utan svar |
| Formatefterlevnad | Om JSON/källhänvisning matas ut enligt krav | Regex-matchning |
| Användarnöjdhet | Om svaret är användbart | Onlinefeedback / A/B-test |
Rekommendation: Förbered en liten testuppsättning (20-50 edge case), kör den varje gång du ändrar prompten och notera förändringarna.
4. Vanliga fallgropar och optimeringsriktningar
| Problem | Möjlig orsak | Optimeringsmetod |
|---|---|---|
| Modellen ignorerar referensmaterial och svarar själv | Instruktionerna är inte tillräckligt tvingande | Ändra till "endast baserat på följande material" och visa avvisande med few-shot |
| Modellen säger alltid "vet inte" | Tröskel för avvisade svar för hög | Sänk tröskeln eller kontrollera sökningens kvalitet |
| Utdataformatet är oredigt, följer inte JSON | Instruktionerna otydliga | Lägg till strikta formatexempel eller använd function calling |
| Svar för långa/korta | Ingen längdangivelse | "Svara med högst 3 meningar" |
| Flerstegsresonemang misslyckas | Modellens resonemangsförmåga otillräcklig | Be om steg-för-steg-resonemang eller byt till starkare modell |
| Hallucinerande siffror/datum | Modellen förlitar sig på egen kunskap | Betona "Använd inga siffror du kommer ihåg, endast från materialet" |
评论
暂无已展示的评论。
发表评论(匿名)