AI-serie sollicitatie 12: Hoe optimaliseer je prompts?
Prompt-optimalisatie (Prompt Engineering / Optimization) is een cruciale vaardigheid om grote taalmodellen "gehoorzaam" te maken, vooral in RAG-systemen, waar het direct bepaalt of het model trouw de opgehaalde inhoud volgt, hallucinaties vermijdt en de uitvoerformaten naleeft.
1. Kernprincipes van prompt-optimalisatie
- Duidelijkheid > complexiteit: Eenvoudige directe instructies zijn vaak effectiever dan fraaie denkketens.
- Geef voldoende beperkingen: Vertel het model duidelijk wat het wel en niet mag doen.
- Geef voorbeelden: Few-shot is stabieler dan zero-shot.
- Verifieerbaar: Laat het model citaten of betrouwbaarheid uitvoeren, zodat downstream beoordeling mogelijk is.
- Iteratieve optimalisatie: Begin met een basislijn, verander telkens slechts één variabele en vergelijk de resultaten.
2. Specifieke optimalisatietechnieken (van eenvoudig naar moeilijk)
1. Rolinstelling (System Prompt)
Je bent een professionele klantenservice-assistent. Je mag alleen vragen beantwoorden op basis van de onderstaande [Referentiemateriaal].
Als je het antwoord niet weet, zeg dan direct "Het referentiemateriaal bevat geen relevante informatie" en verzin niets.
- Functie: Stelt grenzen en toon in.
- Optimalisatiepunten: Toon (professioneel/vriendelijk), beperkingssterkte (streng/mild).
2. Duidelijke instructies
❌ Slecht: "Beantwoord de gebruiker vraag."
✅ Goed: "Antwoord uitsluitend op basis van de onderstaande [Referentiemateriaal]. Als het referentiemateriaal geen antwoord bevat, antwoord dan 'Ik kan deze vraag niet beantwoorden'."
3. Uitvoerformaatcontrole
Geef het antwoord in het volgende JSON-formaat:
{
"answer": "Jouw antwoord",
"confidence": "hoog/midden/laag",
"sources": [1, 3]
}
- Gebruik: Vergemakkelijkt downstream parsen, citeren en debuggen.
4. Few-shot voorbeelden (zeer effectief)
Voorbeeld 1:
Vraag: Hoeveel vakantiedagen zijn er?
Referentiemateriaal: Vakantieregels: 5 dagen na 1 jaar, 10 dagen na 10 jaar.
Antwoord: 5 dagen na 1 jaar, 10 dagen na 10 jaar.
Voorbeeld 2:
Vraag: Hoe wordt overwerk betaald?
Referentiemateriaal: Overwerk op werkdagen 1,5x, in het weekend 2x.
Antwoord: Op werkdagen 1,5x, in het weekend 2x.
Beantwoord nu:
Vraag: {gebruikersvraag}
Referentiemateriaal: {opgehaalde inhoud}
Antwoord:
- Tip: Voorbeelden moeten verschillende moeilijkheidsgraden dekken, bij voorkeur ook een voorbeeld van 'kan niet beantwoorden'.
5. Verplichte citaten
Gebruik aan het einde van het antwoord [citation:X] om de bronnummer aan te geven. Bijvoorbeeld: "Het verlof is 5 dagen[citation:1]."
Als meerdere bronnen worden gecombineerd, geef ze dan apart aan.
6. Instellen van weigeringsdrempel
- Hard: "Als het referentiemateriaal volledig irrelevant is voor de vraag, antwoord dan 'Het materiaal is niet relevant'."
- Zacht: Combineer met de betrouwbaarheidsscore van de retrievel; bij een score onder de drempel, ga dan automatisch naar de weigeringsvertakking.
7. Denkketen (Chain-of-Thought) voor meerstapsredenering
Vraag: Wie is de baas van Zhang San?
Stappen: 1. Zoek eerst de afdeling van Zhang San. 2. Zoek vervolgens de verantwoordelijke van die afdeling. 3. Geef het uiteindelijke antwoord.
Denk stap voor stap en geef het antwoord.
8. Negatieve instructies (Negative Prompting)
Verzin geen antwoorden. Gebruik geen vage woorden zoals 'mogelijk', 'misschien'. Voer geen getallen uit die niet in het referentiemateriaal staan.
3. Hoe evalueer je de kwaliteit van een prompt?
| Metriek | Betekenis | Hoe meten |
|---|---|---|
| Getrouwheid | Of het antwoord strikt gebaseerd is op het referentiemateriaal | Handmatig of RAGAS's Faithfulness |
| Weigeringsnauwkeurigheid | Of het weigert wanneer dat moet | Berekenen op een testset zonder antwoorden |
| Formaatnalevingspercentage | Of het JSON/citaten uitvoert zoals gevraagd | Regex-matching |
| Gebruikerstevredenheid | Of het antwoord nuttig is | Online feedback / A/B-testen |
Advies: Bereid een kleine testset voor (20-50 edge cases) en voer deze telkens uit na een promptwijziging, documenteer de veranderingen.
4. Veelvoorkomende valkuilen en optimalisatierichtingen
| Probleem | Mogelijke oorzaak | Optimalisatiemethode |
|---|---|---|
| Model negeert referentiemateriaal en antwoordt uit zichzelf | Instructie niet dwingend genoeg | Verander naar "Alleen op basis van onderstaand materiaal" en toon weigering met few-shot |
| Model zegt altijd "weet niet" | Weigeringsdrempel te hoog | Verlaag drempel of controleer retrievelkwaliteit |
| Uitvoerformaat rommelig, niet volgens JSON | Instructie onduidelijk | Voeg strikte formaatvoorbeelden toe, of gebruik function calling |
| Antwoord te lang/te kort | Geen lengte gespecificeerd | "Antwoord in maximaal 3 zinnen" |
| Meerstapsredenering fout | Model redeneervermogen ontoereikend | Vraag om stapsgewijze uitleg, of gebruik sterker model |
| Hallucinaties van getallen/datums | Model vertrouwt op eigen kennis | Benadruk "Gebruik geen getallen uit je geheugen, alleen uit het materiaal" |
评论
暂无已展示的评论。
发表评论(匿名)