Few shot prompting, een van de grote technieken in prompt engineering werkt veel minder goed dan geadverteerd. Ik zal je laten zien waarom.
Prompt engineering is de kunst van het bedenken van exact de juiste input “prompt” om een AI model de antwoorden te laten geven die je zoekt. Een van de grote dingen in prompt engineering is “few shot prompting”. Het idee hierachter is in feite het aloude adagium “show, don’t tell”.
Voorbeeld
Hierbij een voorbeeld. Stel je wil film reviews beoordelen en de reviews terug brengen tot één regel in de vorm: filmnaam = beoordeling.
Few shot prompting zegt dat je het model voorbeelden moet geven:
👱🏻♂️De film Batman was supersaai ->
Batman = slecht
Forrest Gump was een geweldige film ->
Forrest Gump = goed
We hebben enorm genoten van Avatar ->
🤖Avatar = goed
Dit werkt inderdaad maar is nergens voor nodig. “tell” ipv “show” werkt net zo goed:
👱🏻♂️Geef me de naam van de film uit de volgende review en of die goed is of slecht.
Geef je antwoord in de vorm: filmnaam = goed of filmnaam = slecht
We hebben enorm genoten van Avatar
🤖Avatar = goed
Nog een voorbeeld
Erger wordt het nog als de input veel langer is. Een bekend voorbeeld is een tekst waar het model gegevens uit moet halen zoals namen en beroepen van de mensen die in de tekst voorkomen. Een few shot prompting benadering is als volgt:
Je geeft in de prompt meerdere voorbeeldteksten met onder iedere tekst de lijst met namen en beroepen. Je eindigt dan met de tekst die geanalyseerd moet worden zodat het model dit kan aanvullen met de juiste output.
Deze aanpak maakt de prompt onnodig complex, en lang, en daarmee duur als je betaalt per token. En dat terwijl het nergens voor nodig is! Dit werkt namelijk ook:
👱🏻♂️Bekijk het volgende verhaal tussen triple quotes
'''Aan het plein woont Laura Boersma die een winkeltje heeft met duurzaam geteelde producten. Mensen komen graag bij haar verse spullen halen. Daarnaast zit de dansschool waar Judith en Jim Wouters als dansinstructeurs werken. Hun buurvrouw, Maaike van der Mey, geeft als vrijwilliger Nederlandse les aan immigranten.'''
Geef me een lijst me personen en hun beroep. Geen intro. Geef me alleen de lijst in de volgende vorm:
1. Persoon [BEROEP]
2. Persoon [BEROEP]
etc.
🤖1. Laura Boersma [winkelier]
2. Judith Wouters [dansinstructeur]
3. Jim Wouters [dansinstructeur]
4. Maaike van der Mei [vrijwillige Nederlandse taaldocent]
Belangrijk is wel dat je de prompt goed specificeert. Let op het “Geen intro” en “geef met alleen de lijst” en natuurlijk het specificeren van hoe de output eruit moet zien.
Conclusie
Ik heb nog geen gevallen gevonden waarin few shot promting nou echt werkt. Het is een mooi bedachte techniek maar het komt mij over als iets dat mensen van elkaar over schrijven zonder het echt goed te hebben uitgeprobeerd.
Vorige post: Artificial General Intelligence