Les 5: Frameworks en parameters

Deze les gaat in op meer geavanceerde technieken. Je kunt overwegen om direct door te gaan naar les 6.

Doel van deze les

  • Je bent bekend met meer geavanceerde technieken die de manier waarop de LLM resultaten genereert beïnvloeden.
  • Je kent enkele Prompting Frameworks.

LLMs hebben enkele parameters die je kunt beïnvloeden. Deze hebben invloed op de manier waarop het resultaat wordt gegenereerd. Het begrijpen van deze parameters kan helpen de output van het model effectief te sturen. Dit kan in de prompt door de LLM aan te moedigen creatief of bondig te zijn. Wanneer je een eigen chatbot maakt, in ChatGPT heet dat een ‘Custom GPT’, kan je die instellingen vaak me getallen of een schuifbalkje instellen. Hier zijn enkele van de belangrijkste parameters:

  1. Temperatuur (Temperature): Deze parameter regelt de mate van willekeur in de gegenereerde tekst. Een lagere temperatuur (bijv. 0,2) leidt tot meer voorspelbare en conservatieve antwoorden, terwijl een hogere temperatuur (bijv. 0,8) leidt tot meer variatie en creativiteit in de antwoorden.
  2. Max Tokens: Hiermee kan je het maximum aantal tokens (woorden of tekens) beperken in de gegenereerde tekst. Dit kan handig zijn om de lengte van de output te beheersen.
  3. Frequency Penalties: Je kunt frequency penalties gebruiken om de herhaling van specifieke woorden of zinsdelen in de gegenereerde tekst te verminderen.
  4. Presence Penalties: Presence penalties kunnen worden gebruikt om ervoor te zorgen dat specifieke woorden of zinsdelen vaker in de gegenereerde tekst voorkomen.
  5. Bestaat Uit (Completions): Dit kan worden gebruikt om aan te geven hoe je wilt dat het model de gegenereerde tekst structureert. Bijvoorbeeld, “Schrijf een samenvatting van” kan aangeven dat het volgende deel een samenvatting moet zijn.
  6. Max Characters: Dit is een alternatieve manier om de lengte van de gegenereerde tekst te beperken door het maximum aantal tekens op te geven.
  7. Stop Sequences: Je kunt stopsequenties definiëren om aan te geven wanneer het model moet stoppen met genereren. Dit is handig om te voorkomen dat de tekst te lang wordt.

Het is belangrijk om te experimenteren met deze technieken om de gewenste output te bereiken. Je kunt de temperatuur en max tokens aanpassen om de balans te vinden tussen creativiteit en controle. Houd er rekening mee dat te veel beperkingen de creativiteit van het model kunnen belemmeren, terwijl te weinig beperkingen de output onvoorspelbaar kunnen maken.

Succes is niet gegarandeerd. Mijn ervaring met deze parameters is dat ChatGPT ze niet altijd goed begrijpt. Er lijkt ook geen standaard manier te zijn om ze te formuleren. Je kunt in een prompt aangeven: ‘Instructiedeel: beantwoord de volgende vraag met lage temperatuur en max tokens 50’ en daarna een vraag stellen.

In praktijk werken de parameters elkaar soms tegen, en LLMs blijken dan niet al te gedisciplineerd. Ze gebruiken bijvoorbeeld toch meer woorden dan aangegeven, doordat ze voorrang geven aan een andere parameter zoals Temperatuur. Die kan er immers toe leiden dat ze meer tekst nodig hebben voor goede resultaten.

Voorbeeld

Klik op onderstaande prompts om een voorbeelden te zien.

Prompt: ‘Geef een voorbeeld van een prompt die gebruik maakt van de parameters Temperatuur en Max Tokens’

Resultaat: Natuurlijk, hier is een voorbeeld van een prompt die gebruikmaakt van de temperatuur- en max tokens-parameters:
Prompt: “Schrijf een korte samenvatting van de werking van zonnepanelen met een lage temperatuur en beperk de samenvatting tot maximaal 50 woorden.”
In dit voorbeeld worden de parameters als volgt toegepast:
Temperatuur: Door de temperatuurparameter op een laag niveau te zetten, zoals 0,2, wordt de tekst meer deterministisch en zal het model waarschijnlijk een zeer precieze samenvatting genereren.
Max Tokens: De “max tokens” parameter is ingesteld op 50, wat betekent dat de gegenereerde samenvatting beperkt is tot een maximum van 50 woorden.

Prompt: ‘Geef een voorbeeld van een prompt die al bovenstaande parameters expliciet meegeeft.’

Resultaat: Natuurlijk, hier is een voorbeeld van een prompt waarbij verschillende parameters expliciet worden meegegeven:

Instructie (Instruction): “Schrijf een korte, creatieve samenvatting (maximaal 50 woorden) van het boek ‘De Avonturen van Alice in Wonderland’ door Lewis Carroll, waarbij je aandacht besteedt aan de humor en de absurde gebeurtenissen. Houd de tekst leuk en luchtig.”

Temperatuur (Temperature): 0.5 (Matige willekeurigheid, niet te conservatief of te creatief)

Max Tokens: 50 (Beperk de samenvatting tot maximaal 50 woorden)

Frequency Penalties: Vermijd herhaling van de namen van de personages en locaties.

Presence Penalties: Zorg ervoor dat de woorden ‘humor’ en ‘absurd’ minstens één keer voorkomen in de tekst.

Stop Sequences: [“Einde samenvatting:”, “Einde tekst:”] (Geeft aan dat het model moet stoppen na de samenvatting)

Deze prompt is bedoeld om een korte, boeiende samenvatting van het boek ‘Alice in Wonderland’ te genereren met enkele specifieke instructies en beperkingen om de kwaliteit en stijl van de samenvatting te beïnvloeden. Door de verschillende parameters en instructies te gebruiken, kunt u de gewenste output nauwkeurig aanpassen aan uw behoeften.

Het resultaat van de laatste prompt (die dus door ChatGPT zelf gegenereerd is als voorbeeld):

De Avonturen van Alice in Wonderland, geschreven door Lewis Carroll, nemen je mee op een waanzinnige reis vol humor en absurde gebeurtenissen. Alice valt letterlijk door een konijnenhol en belandt in een wereld waar niets is wat het lijkt. Ze ontmoet een Cheshire Cat die kan verdwijnen, een hoedenmaker die thee drinkt met een maartse haas, en de tirannieke Koningin van Harten, die haar onderdanen in kaartspellen verandert. De absurditeit stapelt zich op terwijl Alice groter en kleiner wordt, en ze navigeert door een land van doldwaze logica. Een hilarische en betoverende klassieker die jong en oud blijft boeien. Einde samenvatting: Beleef de dolle avonturen van Alice en laat je meeslepen door de humor en het absurde in dit tijdloze verhaal. Ondanks alle vreemdheid ontdek je uiteindelijk dat Wonderland eigenlijk heel logisch is – op zijn eigen gekke manier. Einde tekst.

Prompting Frameworks

Rol, Task, Format – RTF

Een manier om je Chatbot een duidelijke taak te geven en het antwoord te krijgen dat je wilt is in je prompt een duidelijke rol, taak en format weer te geven. Bijvoorbeeld:

Je kunt hier op veel manieren op variëren. Rol kan ook zijn een coach, docent, pinguïn, de keizer van Japan. Het format kan ook zijn een Word of Exceldocument, of je kunt vragen om lopende tekst te maken zoals een tiener dat zou schrijven (in plaats van de gebruikelijke lijstjes waar ChatGPT naar neigt).

Prepare framework

Een framework bedacht door Dan Fitzpatrick is het prepare framework. Dit is geen stappenplan waarbij je alle variabelen erin MOET stoppen. Als je prompt niet het gewenste resultaat geeft, dan zijn dit mogelijke variabelen om betere resultaten te krijgen.

PREPAREToelichting
PromptDuidelijke vraag of opdracht.
RoleGeef een rol. ‘Je bent …’
ExplicitWees expliciet en specifiek over wat je wilt bereiken.
ParametersLengte, tone of voice, meer of minder creatief, …
AskZegt dat bij onduidelijkheden verheldering moet worden gevraagd. Of stel dat altijd om verheldering moet worden gevraagd. Of geef de optie géén output te genereren als iets niet bekend is.
RateVraag om een evaluatie van de output door de AI zelf. Vraag om verbeterpunten.
EmotionEen emotioneel appel verhoogd soms de kwaliteit. ‘Wees zorgvulgdig’ of ‘het is belangrijk’ of ‘doe je best om…’ of biedt een fooi

Enkele elementen spreken voor zich of hebben we al besproken. Enkele zijn goed om bij stil te staan.

Ask: LLMs zijn geneigd om altijd en erg zelfverzekerd te antwoorden. Maar soms zitten ze er naast en vertellen ze je onzin. Om dit (enigszins) tegen te gaan kan het helpen de chatbot aan te moedigen je vragen ter verduidelijking te stellen.

Emotion: Vreemd genoeg reageren LLMs goed op een emotioneel appel. Wees beleeft, geef aan hoe belangrijk het is voor je, beloof een fooi, etc. Het klinkt niet intuitief, omdat we met een computer praten, maar dit kan echt helpen.

Chain of Thought

Eerder hadden we het er al over: Het kan helpen om voorbeelden te geven: schrijf het in dit format of in deze stijl – en dan geef je tekst met voorbeelden daarvan. Les 4 benadrukte ook een iteratief ontwerp. In het verlengde daarvan kan je denkstappen stimuleren. Dit heet Chain of Thought prompting.

De eenvoudigste manier is om te zeggen: ‘Ga zorgvuldig te werk, doe dit stap voor stap.’ Of ‘analyseer dit document pagina voor pagina’. Een uitgebreidere manier is om letterlijk stappen voor de stellen. ‘Als je een workshop voorbereid: schrijf eerst de leerdoelen, maak dan bij elk doel een oefening. Schrijf daarna casuïstiek en instructies voor de deelnemers voor elke oefening.’ In dit geval kan het ook handig zijn om weer iteratief te werken en om een akkoord te vragen bij elke stap.

Een stuk slimmer

Chain of Though maakt LLMs vaak een stuk slimmer. Zoveel slimmer dat OpenAi in hun model 1o (op 26 sept 2024 nog vrij nieuw) hun LLMs zelf redeneringen laten opzetten. De prompting aanwijzing is hierbij om juist géén Chain of Thought in te geven, omdat het systeem dit zelf gaat opzetten. Het model is goed in het oplossen van ingewikkelde vragen, zoals het schrijven van een volledig (klein) computerprogramma.

Oefening

Blijf in gesprek met je LLM. Experimenteer met de parameters of variabelen uit deze les.

Beantwoord daarna de volgende vragen:

  • Welke parameters hielpen het meest?
  • Is de uitkomst inderdaad creatiever of meer ‘hallucinant’ als je vraagt om een hoge temperatuur of meer creativiteit?
  • Helpt Chain of Thought prompting je bij het opzetten van bijvoorbeeld projectplannen of lesplannen?

In de volgende les zullen we bespreken hoe je rekening kunt houden met de gevoeligheid voor bias bij het ontwerpen van prompts.