AI-interviewserie 12: Hvordan optimerer man en prompt?
Prompt-optimering (Prompt Engineering / Optimization) er en afgørende færdighed for at få store sprogmodeller til at adlyde, især i RAG-systemer, da det direkte bestemmer, om modellen trofast følger de hentede oplysninger, undgår hallucinationer og leverer output i korrekt format.
1. Kerne principper for prompt-optimering
- Klarhed > Kompleksitet: Enkle, direkte instruktioner er ofte mere effektive end smarte tankekæder.
- Giv tilstrækkelige begrænsninger: Fortæl modellen tydeligt, hvad den må og ikke må.
- Giv eksempler: Few-shot er mere stabilt end zero-shot.
- Verificerbart: Få modellen til at levere kilder eller tillidsniveauer for at lette downstream-vurdering.
- Iterativ optimering: Start fra en baseline, ændr kun én variabel ad gangen, og sammenlign resultater.
2. Specifikke optimeringsteknikker (fra let til svær)
1. Rolleopsætning (System Prompt)
Du er en professionel kundeserviceassistent. Du må kun besvare spørgsmål baseret på de nedenfor angivne [Referencer]. Hvis du ikke kender svaret, skal du sige 'Der er ingen relevant information i materialet' og ikke finde på noget.
- Formål: Angiver grænser og tone.
- Optimering: Tone (professionel/venlig), begrænsningsstyrke (streng/lempelig).
2. Tydelige instruktioner
❌ Dårlig: "Besvar brugerens spørgsmål."
✅ God: "Besvar kun baseret på nedenstående [Referencer]. Hvis referencerne ikke indeholder svaret, svar 'Jeg kan ikke besvare dette spørgsmål'."
3. Outputformatkontrol
Output i følgende JSON-format:
{
"answer": "Dit svar",
"confidence": "Høj/Mellem/Lav",
"sources": [1, 3]
}
- Anvendelse: Letter downstream-parsing, kildehenvisning og debugging.
4. Few-shot eksempler (meget effektiv)
Eksempel 1:
Spørgsmål: Hvor mange feriedage?
Referencer: Ferie regler: 5 dage efter 1 år, 10 dage efter 10 år.
Svar: 5 dage efter 1 år, 10 dage efter 10 år.
Eksempel 2:
Spørgsmål: Hvordan beregnes overarbejdsbetaling?
Referencer: Hverdage 1,5 gange, weekender 2 gange.
Svar: Hverdage 1,5 gange, weekender 2 gange.
Besvar nu:
Spørgsmål: {brugerens spørgsmål}
Referencer: {hentet indhold}
Svar:
- Tip: Eksemplerne bør dække forskellige sværhedsgrader, og det er bedst at inkludere et eksempel på 'kan ikke besvares'.
5. Tvungen kildehenvisning
Tilføj kildehenvisninger i slutningen af svaret med [citation:X]. F.eks.: 'Ferien er 5 dage[citation:1].' Hvis flere kilder kombineres, angiv dem separat.
6. Indstil afvisningstærskel
- Hård begrænsning: "Hvis referencerne er helt irrelevante for spørgsmålet, svar 'Materialet er irrelevant'."
- Blød begrænsning: Kombiner med hentningens tillidsniveau, og gå automatisk til afvisningsgren, hvis det er under tærsklen.
7. Tankekæde (Chain-of-Thought) til flertrinsræsonnement
Spørgsmål: Hvem er Zhang Sans chef?
Trin: 1. Find først Zhang Sans afdeling. 2. Find derefter afdelingslederen. 3. Giv det endelige svar.
Tænk trin for trin og output.
8. Negative instruktioner (Negative Prompting)
Opfind ikke svar. Brug ikke vage ord som 'måske' eller 'muligvis'. Output ikke nogen tal, der ikke findes i referencerne.
3. Hvordan vurderer man kvaliteten af en prompt?
| Mål | Betydning | Hvordan måles |
|---|---|---|
| Trofasthed | Om svaret er strengt baseret på referencer | Manuelt eller RAGAS's Faithfulness |
| Afvisningsnøjagtighed | Om modellen afviser, når den bør | Beregn på testdata uden svar |
| Formatoverholdelse | Om output overholder JSON/krav | Regex matching |
| Brugertilfredshed | Om svaret er nyttigt | Online feedback / A/B-test |
Anbefaling: Forbered et lille testsæt (20-50 grænsetilfælde), kør det hver gang du ændrer prompten, og registrer ændringerne.
4. Almindelige faldgruber og optimeringsretninger
| Problem | Mulig årsag | Optimeringsmetode |
|---|---|---|
| Modellen ignorerer referencer og svarer på egen hånd | Instruktionen er ikke stærk nok | Ændr til 'kun baseret på følgende materiale' og brug few-shot til at demonstrere afvisning |
| Modellen siger altid 'ved ikke' | Afvisningstærsklen er for høj | Sænk tærsklen eller kontroller hentningskvaliteten |
| Outputformatet er rod, ikke JSON | Instruktionen er uklar | Tilføj et stringent formateksempel, eller brug function calling |
| Svar er for lange/korte | Ingen længdeangivelse | 'Svar med højst 3 sætninger' |
| Flertrinsræsonnement fejler | Modellens ræsonnementsevne er utilstrækkelig | Kræv trinvis ræsonnering, eller brug en stærkere model |
| Hallucinerende tal/datoer | Modellen stoler på egen viden | Understreg 'Brug ikke nogen tal, du husker, se kun på materialet' |
评论
暂无已展示的评论。
发表评论(匿名)