AI in de creatieve industrie: kunst, muziek en schrijven

Gevorderd • Les 22

AI in de creatieve industrie: kunst, muziek en schrijven

Generatieve AI produceert inmiddels beelden, muziek en teksten die niet van menselijk werk te onderscheiden zijn. Dit brengt enorme mogelijkheden mee voor creators, maar roept ook serieuze vragen op over auteursrecht, authenticiteit en de toekomst van creatief werk.

Beeldgeneratie

Modellen als DALL-E, Midjourney en Stable Diffusion genereren beelden op basis van tekstbeschrijvingen. Ze zijn getraind op miljoenen gelabelde afbeeldingen van het internet. Illustratoren, fotografen en grafisch ontwerpers zien hun markt veranderen. Tegelijkertijd gebruiken steeds meer creators AI als gereedschap voor inspiratie, prototyping en productie.

Muziekgeneratie

Tools als Suno en Udio genereren complete liedjes inclusief zang op basis van een prompt. AI-gegenereerde muziek is al te horen in reclame, games en podcasts. De muziekindustrie worstelt met vragen over rechten en vergoedingen: als een AI is getraind op bestaande muziek, wie heeft dan recht op de royalties van de output?

Schrijven en auteursrecht

AI-schrijfassistenten helpen bij het schrijven van marketingteksten, scripts en artikelen. Uitgevers en platforms worstelen met de vraag hoe ze AI-gegenereerde content moeten behandelen. In de EU en VS lopen rechtszaken over of het trainen van AI op auteursrechtelijk beschermde werken legaal is. De uitkomsten zullen de sector de komende jaren vormgeven.

De positie van de creator

De meest succesvolle toepassing van AI in de creatieve sector is als collaboratief gereedschap: AI versnelt het productieproces en geeft creators meer ruimte voor het verfijnen van ideeën. Menselijke smaak, intentie en verhaalkunst blijven vooralsnog moeilijk te repliceren. De markt beloont steeds meer creators die AI beheersen en integreren.

RLHF: hoe AI wordt bijgestuurd met menselijke feedback

Gevorderd • Les 21

RLHF: hoe AI wordt bijgestuurd met menselijke feedback

Een voorgetraind taalmodel produceert plausibele tekst, maar dat betekent niet dat het nuttig, eerlijk of veilig is. RLHF is de techniek die ChatGPT, Claude en andere assistenten heeft getransformeerd van tekstgeneratoren naar behulpzame assistenten.

De drie fasen van RLHF

RLHF bestaat uit drie stappen. Eerst wordt het basismodel gesuperviseerd ge-fine-tuned op gewenst gedrag met behulp van door mensen geschreven voorbeelden. Vervolgens worden twee of meer reacties van het model beoordeeld door menselijke evaluatoren op basis van voorkeur. Ten slotte wordt een beloningsmodel getraind op die voorkeuren en gebruikt om het taalmodel verder te optimaliseren via reinforcement learning.

Constitutional AI

Anthropic heeft een variant ontwikkeld genaamd Constitutional AI (CAI). In plaats van alleen menselijke beoordelaars in te zetten, wordt het model geleid door een set expliciete principes (een “grondwet”). Het model leert zichzelf te evalueren en te verbeteren op basis van die principes, wat menselijke beoordelaars gedeeltelijk vervangt en schaalbaarder is.

Beperkingen van RLHF

RLHF leidt soms tot sycophancy: het model leert wat evaluatoren leuk vinden in plaats van wat feitelijk correct is. Menselijke evaluatoren zijn zelf niet perfect en brengen hun eigen biases mee. Het beloningsmodel kan worden “gehackt” door het taalmodel, een fenomeen genaamd reward hacking. Dit is een actief onderzoeksgebied.

DPO als alternatief

Direct Preference Optimization (DPO) is een nieuwere techniek die hetzelfde doel bereikt als RLHF maar eenvoudiger te implementeren is. In plaats van een apart beloningsmodel te trainen, optimaliseert DPO het taalmodel direct op voorkeursparen. Het wordt inmiddels breed ingezet als efficiënt alternatief voor RLHF.

Generatieve AI voor code: GitHub Copilot en alternatieven

Gevorderd • Les 20

Generatieve AI voor code: GitHub Copilot en alternatieven

AI-codeassistenten zijn een van de meest impactvolle toepassingen van generatieve AI. Ze versnellen het schrijven van code, helpen bij het begrijpen van legacy-systemen en verlagen de drempel om nieuwe technologieen te leren.

Hoe werken code-AI-modellen?

Code-modellen zijn getraind op enorme hoeveelheden publieke broncode van platforms als GitHub, GitLab en Stack Overflow. Ze leren patronen: hoe functies worden geschreven, hoe API’s worden aangeroepen, en hoe problemen worden opgelost in specifieke talen. GitHub Copilot gebruikt modellen van de GPT-familie, gespecialiseerd op code.

Wat kunnen ze goed?

Code-assistenten blinken uit in het aanvullen van boilerplate, het schrijven van unit tests, het refactoren van bestaande code, het genereren van documentatie en het uitleggen van complexe codefragmenten. Ze zijn bijzonder nuttig bij bekende bibliotheken en frameworks met veel trainingsdata.

Alternatieven voor Copilot

Naast GitHub Copilot zijn er Cursor (een volledig AI-geinte greerde code-editor), Cody van Sourcegraph (codebase-bewust), Tabnine (privacy-gericht, lokaal uitvoerbaar) en Claude Code (terminal-gebaseerd, gericht op complexe multi-step taken). Elk heeft andere sterke punten wat betreft context-bewustzijn, privacy en integratie.

Beperkingen en risico’s

Code-AI’s kunnen subtiele bugs introduceren die er correct uitzien maar onjuist zijn. Ze reproduceren soms onveilige patronen uit hun trainingsdata. Bij kritieke systemen moet gegenereerde code altijd worden gereviewd. Bovendien kan afhankelijkheid van AI-assistenten de basiskennis van ontwikkelaars ondermijnen als ze niet kritisch blijven nadenken.

Retrieval-Augmented Generation (RAG) in de praktijk

Gevorderd • Les 19

Retrieval-Augmented Generation (RAG) in de praktijk

RAG is de meest gebruikte architectuur om taalmodellen te voorzien van actuele of domeinspecifieke kennis zonder het model opnieuw te trainen. Je koppelt een zoeksysteem aan een LLM en het model genereert antwoorden op basis van opgehaalde documenten.

De basis-RAG-pipeline

Een RAG-pipeline bestaat uit drie stappen. Indexering: documenten worden opgesplitst in chunks, omgezet naar embeddings en opgeslagen in een vector database. Retrieval: bij een vraag wordt de vraag ook naar een embedding omgezet en de meest vergelijkbare chunks worden opgehaald. Generatie: de opgehaalde chunks worden samen met de vraag naar het LLM gestuurd dat een antwoord genereert.

Chunk-strategie

De grootte en manier van opsplitsen van documenten (chunking) heeft grote invloed op RAG-kwaliteit. Te kleine chunks missen context; te grote chunks bevatten ruis. Populaire methoden zijn fixed-size chunking, sentence-based chunking en recursive chunking. Experimenteer met overlap tussen chunks om context-verlies bij grenzen te verminderen.

Re-ranking en geavanceerd ophalen

Na het ophalen van de top-k chunks kun je een re-ranker inzetten om de relevantie opnieuw te beoordelen. Tools als Cohere Rerank of cross-encoders zijn effectiever dan pure cosine similarity. Hybride zoeken combineert vector search met traditioneel keyword search (BM25) voor betere recall.

Evalueren van RAG

Evalueer RAG op retrieval-kwaliteit (haalt het de juiste chunks op?) en op generatie-kwaliteit (is het antwoord correct en gebaseerd op de opgehaalde context?). Frameworks als RAGAS bieden gestandaardiseerde metrics. Veelvoorkomende problemen zijn hallucinations ondanks context, en antwoorden die de opgehaalde chunks negeren.

AI en duurzaamheid: de ecologische voetafdruk van grote modellen

Gevorderd • Les 18

AI en duurzaamheid: de ecologische voetafdruk van grote modellen

De snelle groei van AI heeft een keerzijde: enorm energieverbruik. Het trainen van een groot taalmodel zoals GPT-4 verbruikt evenveel energie als honderden huishoudens in een jaar. Dit roept terechte vragen op over duurzaamheid in de AI-industrie.

Training versus inference

Er zijn twee fases met significante energiekosten. Training is de eenmalige, enorm energie-intensieve fase waarbij het model wordt gebouwd op duizenden GPU’s gedurende weken of maanden. Inference is het dagelijkse gebruik: elke vraag aan een AI verbruikt rekenkracht. Bij populaire diensten met miljarden gebruikers telt inference op tot een enorm totaal.

Waterverbruik

Datacenters koelen hun servers met water. Grote AI-bedrijven als Microsoft en Google verbruiken miljoenen liters water per dag voor koeling. In regio’s met waterschaarste is dit een groeiend probleem. Sommige bedrijven rapporteren nu ook hun waterverbruik naast hun CO2-uitstoot.

Efficiëntere modellen

De industrie werkt aan oplossingen: kleinere, efficiëntere modellen die minder rekenkracht nodig hebben, betere hardware (NVIDIA Blackwell verbruikt minder energie per operatie dan vorige generaties), en slimmere trainingstrategieën. Quantisatie, pruning en kennisdistillatie zijn technieken om modellen kleiner en zuiniger te maken zonder veel kwaliteitsverlies.

Hernieuwbare energie

Grote AI-bedrijven investeren fors in hernieuwbare energie: zonneparken, windenergie en soms kernenergie. Google, Microsoft en Amazon streven naar 100% CO2-neutraliteit voor hun datacenters, al is de definitie van “CO2-neutraal” een discussiepunt. Transparantie over energieverbruik wordt steeds meer vereist door investeerders en toezichthouders.

Chain-of-thought prompting en redeneerketens

Gevorderd • Les 17

Chain-of-thought prompting en redeneerketens

Een taalmodel dat direct een antwoord geeft maakt meer fouten dan een model dat eerst hardop redeneert. Chain-of-thought prompting benut dit principe door het model te dwingen zijn redenering zichtbaar te maken voor het eindantwoord.

Wat is chain-of-thought?

Bij chain-of-thought (CoT) prompting vraag je het model zijn gedachtegang stap voor stap te beschrijven: “Denk hier stap voor stap over na.” Dit simpele verzoek leidt aantoonbaar tot betere resultaten bij wiskunde, logica en redeneerproblematiek. Het model legt als het ware zijn werk uit en pakt daarin fouten eerder op.

Zero-shot versus few-shot CoT

Zero-shot CoT voeg je toe met een instructie als “Denk stap voor stap” zonder verdere voorbeelden. Few-shot CoT geeft je expliciete voorbeelden van de gewenste redeneerstructuur mee. Few-shot is krachtiger maar vereist meer promptwerk. Voor moeilijke problemen loont het om redeneervoorbeelden te schrijven die het model kan volgen.

Extended thinking

Recente modellen zoals Claude Sonnet met extended thinking en OpenAI o1/o3 zijn specifiek getraind om uitgebreid te redeneren voor een antwoord te geven. Ze produceren een intern redeneerproces (reasoning tokens) dat niet altijd zichtbaar is voor de gebruiker maar wel de kwaliteit van het eindantwoord verhoogt. Dit is een geautomatiseerde vorm van CoT.

Wanneer gebruik je CoT?

CoT is het meest effectief bij problemen met meerdere stappen, wiskundige berekeningen, logische puzzels en planningsvragen. Bij eenvoudige feitenretrieval voegt het weinig toe. Het nadeel is dat CoT meer tokens verbruikt en de latency vergroot.

Systeem-prompts en rollen in AI-applicaties

Gevorderd • Les 16

Systeem-prompts en rollen in AI-applicaties

Elke AI-applicatie, van klantenservicebot tot codeerassistent, begint met een system prompt: een set instructies die het karakter, de beperkingen en het doel van de assistent vastlegt. Een goed ontworpen system prompt is het fundament van een betrouwbare AI-toepassing.

De rollenstructuur

Moderne AI-API’s werken met een berichtenstructuur van drie rollen: system (de achtergrondinstelling), user (de berichten van de eindgebruiker) en assistant (de reacties van het model). De system-rol heeft hogere prioriteit dan de user-rol; instructies in de system prompt zijn moeilijker te overschrijven door de gebruiker.

Wat zet je in een system prompt?

Effectieve system prompts bevatten: een duidelijke omschrijving van de rol (“Je bent een klantenservicemedewerker voor webshop X”), de doelgroep, de toon (formeel/informeel), wat de assistent wel en niet mag, en eventuele domeinspecifieke kennis. Hoe specifieker de instructies, hoe consistenter het gedrag van het model.

Few-shot voorbeelden in de system prompt

Je kunt in de system prompt voorbeelden meegeven van gewenst gedrag: een voorbeeld-vraag en gewenst antwoord. Dit heet few-shot prompting. Het is bijzonder effectief voor het aanleren van een specifieke stijl of het formatteren van output op een bepaalde manier die moeilijk in woorden te beschrijven is.

Valkuilen

Een te lange system prompt neemt context weg van de gebruikersinteractie. Tegenstrijdige instructies leiden tot inconsistent gedrag. Test altijd met edge cases: wat doet de assistent als de gebruiker iets vraagt wat buiten het gedefinieerde domein valt? Een goede system prompt handelt ook “out-of-scope” verzoeken graceful af.

Tokenisatie: hoe taalmodellen tekst verwerken

Gevorderd • Les 15

Tokenisatie: hoe taalmodellen tekst verwerken

Taalmodellen lezen geen letters of woorden maar tokens. Begrijpen hoe tokenisatie werkt helpt je betere prompts te schrijven, kosten te beheersen en beter te begrijpen waarom modellen soms vreemde fouten maken.

Wat is een token?

Een token is een stuk tekst dat het model als eenheid verwerkt. Het kan een heel woord zijn, een deel van een woord, of zelfs een enkel leesteken. Het woord “kunstmatige” wordt door de meeste tokenizers opgesplitst in meerdere tokens. In het Engels zijn tokens gemiddeld zo’n 4 tekens lang; in het Nederlands en andere talen met langere woorden zijn teksten vaak duurder in tokens.

Byte Pair Encoding

De meest gebruikte tokenisatiemethode is Byte Pair Encoding (BPE). Het algoritme start met alle individuele tekens als tokens en voegt vervolgens de meest voorkomende tekenparen samen totdat een gewenst vocabulaire is bereikt. Zo worden veelvoorkomende woorden en woorddelen hun eigen token, terwijl zeldzame woorden worden opgesplitst.

Praktische implicaties

Tokenisatie verklaart waarom modellen soms slecht zijn in simpele taken zoals letters tellen of omgekeerd schrijven: het model ziet de tekst niet op teken-niveau maar op token-niveau. Het verklaart ook waarom code en getallen soms vreemd worden verwerkt. Code heeft een hoge token-dichtheid, wat promptoptimalisatie voor code-taken relevant maakt.

Kosten en limieten

API-kosten worden berekend per token (invoer en uitvoer apart). Een prompt van 1.000 woorden bevat typisch 1.300 tot 1.500 tokens. Wees zuinig met tokens in production-systemen: vermijd onnodige herhaling in system prompts, gebruik beknopte instructies en meet je gemiddeld tokenverbruik per use case.

Context window en long-context modellen

Gevorderd • Les 14

Context window en long-context modellen

Het context window is de hoeveelheid tekst die een taalmodel tegelijk kan zien en verwerken: invoer en uitvoer samen. Het heeft directe gevolgen voor wat je kunt vragen en hoe je het model moet inzetten.

Wat is het context window?

Elk taalmodel heeft een maximale context window uitgedrukt in tokens. Vroege modellen hadden windows van 4.000 tokens (circa 3.000 woorden). Moderne modellen zoals Claude Sonnet bieden 200.000 tokens, wat overeenkomt met een boek van zo’n 150.000 woorden. Alles buiten het window is voor het model onzichtbaar.

Wat zit er in de context?

De context bevat de system prompt, de gespreksgeschiedenis, meegestuurde documenten en de respons van het model. Hoe meer je meestuurt, hoe minder ruimte er overblijft voor de rest. Bij lange gesprekken raakt de context vol en moet je beslissen wat je weggooit of samenvat.

Lost-in-the-middle probleem

Onderzoek toont aan dat taalmodellen beter presteren op informatie aan het begin en einde van de context dan in het midden. Dit heet het lost-in-the-middle probleem. Als je een lang document meestuurt en de kritische informatie staat op pagina 30 van 60, kan het model dit missen. Plaats belangrijke instructies en data bij voorkeur aan het begin of einde.

Efficiënt omgaan met context

Voeg alleen relevante informatie toe aan de context. Gebruik samenvattingen van eerdere gespreksstukken. Bij RAG-systemen stuur je niet het hele document mee maar alleen de relevante passages. Monitor hoeveel tokens je per aanroep verbruikt, want grote contexts verhogen zowel latency als kosten.

Structured output en JSON-mode in taalmodellen

Gevorderd • Les 13

Structured output en JSON-mode in taalmodellen

Wanneer je een AI integreert in een applicatie, wil je geen vrije tekst maar gestructureerde data die je programmatisch kunt verwerken. Structured output en JSON-mode maken dit mogelijk en verhogen de betrouwbaarheid van AI-integraties sterk.

Waarom structured output?

Vrije tekst is moeilijk te parsen en inconsistent. Als je een AI vraagt een product te beoordelen, wil je liever een JSON-object met velden voor score, samenvatting en categorie dan een vrije alinea. Dit maakt de output direct bruikbaar in databases, dashboards en verdere verwerkingsstappen.

JSON-mode

Veel API’s bieden een JSON-mode waarbij het model gegarandeerd valide JSON produceert. Je stuurt een schema mee dat de verwachte structuur beschrijft, en het model vult de velden in. OpenAI’s structured outputs-functie en Claude’s tool use met schema-validatie zijn voorbeelden van deze aanpak.

Schema-ontwerp

Een goed schema is specifiek genoeg om de output te sturen maar flexibel genoeg om met variatie om te gaan. Gebruik duidelijke veldnamen, voeg beschrijvingen toe per veld, en markeer verplichte versus optionele velden. Slechte schema’s leiden tot inconsistente output, ook al genereert het model technisch valide JSON.

Beperkingen en tips

Structured output werkt goed voor gestructureerde extractie (entiteiten uit tekst halen), classificatie en data-transformatie. Het werkt minder goed voor open-ended creatieve taken. Als een schema te complex is, neemt de kans op fouten toe. Splits complexe schema’s op in meerdere kleinere aanroepen voor betere resultaten.