AI-serieintervju 12: Hvordan optimalisere prompt?
Prompt-optimalisering (Prompt Engineering / Optimization) er nøkkelferdigheten for å få store språkmodeller til å «lystre», spesielt i RAG-systemer. Det avgjør om modellen trofast følger det hentede innholdet, unngår hallusinasjoner, og genererer strukturert output.
1. Kjerprinsipper for prompt-optimalisering
- Tydelighet > Kompleksitet: Enkle, direkte instruksjoner er ofte mer effektive enn kompliserte tankekjeder.
- Gi klare begrensninger: Spesifiser tydelig hva modellen skal og ikke skal gjøre.
- Gi eksempler: Few-shot er mer stabilt enn zero-shot.
- Verifiserbar: La modellen oppgi kilder eller konfidensnivå for enklere etterprøving.
- Iterativ forbedring: Start med en grunnlinje, endre kun én variabel om gangen, og sammenlign resultatene.
2. Spesifikke optimaliseringsteknikker (fra enkelt til avansert)
1. Rolleinnstilling (System Prompt)
Du er en profesjonell kundestøtteassistent. Du kan kun svare på spørsmål basert på [Referansemateriale] nedenfor.
Hvis du ikke vet svaret, si direkte: «Ingen relevant informasjon i materialet», og ikke finn på noe selv.
- Effekt: Setter grenser og tone.
- Optimaliseringspunkt: Tone (profesjonell/vennlig), styrke på begrensninger (streng/avslappet).
2. Tydelige instruksjoner
❌ Dårlig: «Svar på brukerens spørsmål.»
✅ Bra: «Bare basert på [Referansemateriale] nedenfor. Hvis referansematerialet ikke inneholder svaret, svar: «Jeg kan ikke svare på dette spørsmålet.»
3. Utdataformatkontroll
Skriv ut i følgende JSON-format:
{
"answer": "Ditt svar",
"confidence": "Høy/Middels/Lav",
"sources": [1, 3]
}
- Bruk: For enklere parsing, referanser og feilsøking.
4. Few-shot-eksempler (svært effektive)
Eksempel 1:
Spørsmål: Hvor mange feriedager har jeg?
Referansemateriale: Ferieregler: 1 år = 5 dager, 10 år = 10 dager.
Svar: 1 år = 5 dager, 10 år = 10 dager.
Eksempel 2:
Spørsmål: Hvordan beregnes overtidsbetaling?
Referansemateriale: 1,5 ganger for ukedager, 2 ganger for helger.
Svar: 1,5 ganger for ukedager, 2 ganger for helger.
Svar nå:
Spørsmål: {Brukerens spørsmål}
Referansemateriale: {Hentet innhold}
Svar:
- Tips: Eksemplene bør dekke ulike vanskelighetsgrader, og inkludere minst ett eksempel på «kan ikke svare».
5. Tving kildenhenvisning
Merk kilden på slutten av svaret med [citation:X]. For eksempel: «Ferie er 5 dager[citation:1].»
Hvis du kombinerer flere kilder, merk dem separat.
6. Sett terskel for å nekte å svare
- Hard begrensning: «Hvis referansematerialet er helt irrelevant for spørsmålet, svar: «Materialet er ikke relevant».
- Myk begrensning: Kombiner med konfidensscore fra søket; hvis under terskel, gå automatisk til nekting.
7. Tankekjede (Chain-of-Thought) for flertrinnsresonnering
Spørsmål: Hvem er sjefen til Zhang San?
Trinn: 1. Finn avdelingen til Zhang San. 2. Finn ut hvem som leder den avdelingen. 3. Gi endelig svar.
Tenk steg for steg og skriv ut svaret.
8. Negative instruksjoner (Negative Prompting)
Ikke finn på svar. Ikke bruk vage ord som «kanskje» eller «muligens». Ikke oppgi tall utenom referansematerialet.
3. Hvordan vurdere kvaliteten på en prompt?
| Indikator | Betydning | Hvordan måle |
|---|---|---|
| Trofasthet | Om svaret strengt følger referansematerialet | Manuelt eller RAGAS Faithfulness |
| Nektingens nøyaktighet | Om modellen nekter å svare når den bør | Beregn på testsett uten svar |
| Format-overholdelse | Om JSON/sitering følges | Regex-matching |
| Brukertilfredshet | Om svaret er nyttig | Tilbakemeldinger / A/B-testing |
Anbefaling: Lag et lite testsett (20–50 grensetilfeller), kjør hver prompt-endring og noter endringer.
4. Vanlige fellgruber og optimaliseringsretninger
| Problem | Mulig årsak | Optimaliseringsmetode |
|---|---|---|
| Modellen ignorerer referansemateriale og svarer selv | Instruksjoner ikke sterke nok | Endre til «Bare basert på følgende materiale», og vis few-shot med nektelse |
| Modellen sier alltid «vet ikke» | For høy terskel for nektelse | Senk terskelen eller sjekk søkekvaliteten |
| Rotete utdata, ikke JSON | Utvetydige instruksjoner | Legg til tydelig formateksempel, eller bruk function calling |
| Svar for langt/kort | Ikke angitt lengde | «Svar med maks 3 setninger» |
| Feil i flertrinnsresonnering | Modellens resonneringsevne mangler | Be om steg-for-steg-resonnering, eller bruk en sterkere modell |
| Hallusinerte tall/datoer | Modellen stoler på egen kunnskap | Understrek: «Ikke bruk tall du husker, se kun på materialet» |
评论
暂无已展示的评论。
发表评论(匿名)