Waar gebruik jij ChatGPT, Claude of andere large language models (LLM’s) voor?
Als je op de meeste mensen lijkt, bestaat een groot deel daarvan uit schrijven. Uit onderzoek blijkt zelfs dat “maar liefst 62% van de ChatGPT-verzoeken schrijfgerelateerd is.” Van het opstellen van e-mails en essays tot het genereren van marketingteksten en codedocumentatie: we vertrouwen op deze modellen om woorden aan elkaar te rijgen, en we willen dat ze daarbij onze instructies volgen.
Bij Typetone gebruiken we LLM’s om contentmarketing te automatiseren voor kleine en middelgrote bedrijven—we genereren een volledige maand aan social media-posts, blogartikelen en meer in enkele minuten.
We gingen er altijd van uit dat ons product met betere modellen ook beter zou worden. En de modellen zijn afgelopen jaar inderdaad beter geworden! Alleen niet op de dingen die belangrijk waren voor onze AI-marketingagent Sarah.
Modellen lijken vooral vooruitgang te boeken op het gebied van coderen, redeneren en wiskunde. Maar zelfs “OpenAI zelf geeft toe dat mensen vaak oudere modellen verkiezen voor taken zoals Personal Writing en Editing Text.”
Bestaande ranglijsten (Chatbot Arena, SEAL, LLM Hallucination Index, SWE-bench, MMLU, Tau-bench) richten zich vooral op redeneren, kennis en het uitvoeren van agentic taken, maar het verraste ons dat er nauwelijks een is die zich richt op schrijven—terwijl dit voor de gemiddelde AI-gebruiker gebruikscasus nummer 1 is.
Toen realiseerden we ons dat we niet alleen kunnen vertrouwen op publiek beschikbare benchmarks om het beste model voor onze use case te kiezen. Dus besloten we onze eigen benchmark te bouwen en fatsoenlijke evaluaties op te zetten.
Hoe evalueer je schrijfwerk van LLM’s (of mensen)?
Voordat we ingaan op waar modellen tekortschieten, is het goed om eerst te verduidelijken hoe we schrijfwerk eigenlijk evalueren.
Als we een mens zouden vragen om iets voor ons te schrijven of te redigeren, hoe zouden we dan weten of ze goed werk hebben geleverd? Dezelfde maatstaven gelden voor LLM’s—en die vallen uiteen in een paar kerndimensies:
1a. Schrijfinstructies volgen
Dit gaat over hoe goed het model zich houdt aan de instructies voor het schrijven van iets nieuws. Denk aan zaken als het aanhouden van een bepaald aantal woorden, het gebruiken (of vermijden) van bepaalde trefwoorden, correcte opmaak en het aanhouden van toon- of stijlrichtlijnen.
Als je een freelancer zou vragen om een LinkedIn-post van 100 woorden in een informele toon zonder emoji’s of uitroeptekens te schrijven, zou je verwachten dat ze zich daaraan houden. Hetzelfde geldt hier.
1b. Redactie-instructies volgen
Nauw verwant hieraan: dit test hoe goed modellen bestaande tekst kunnen bewerken volgens specifieke instructies—zoals het inkorten van een alinea, het omzetten van lijdende naar bedrijvende vorm, of het schrappen van jargon.
We hebben de redactiespecifieke evaluatie in deze versie van de benchmark buiten beschouwing gelaten, maar bereiden ons erop voor door te evalueren hoe goed het model instructieschendingen in tekst herkent—een noodzakelijke voorwaarde om een tekst te kunnen redigeren.
En ook hier verwachten we hetzelfde van een menselijke redacteur.
2. Variatie in structuur en stijl over onderwerpen heen
Een sterke schrijver gebruikt niet voor elk stuk content dezelfde zinsopbouw of woordenschat. Een van de duidelijkste tekenen dat iets machinaal is gegenereerd, is herhaling van structuur: elke post beginnen met een vraag, of steeds dezelfde zinsjabloon gebruiken.
Goede evaluatie stelt de vraag: past het model zijn stijl aan op de prompt, of valt het terug op veilige standaardpatronen?
3. Vermijden van LLM-taal
Dit is lastiger te vatten. Zoals eerder gezegd is herhaling één signaal.
Maar LLM-taal is dat onbestemde gevoel dat iets door een machine is geschreven—te formeel, volgestopt met generieke buzzwords, of te hard zijn best doend om inspirerend te klinken. Ironisch genoeg is dit lastig te vermijden voor zowel mensen als AI.
De meest gangbare manier om LLM-taal te evalueren is te controleren op overmatig gebruik van bepaalde woorden die typisch door LLM’s worden gebruikt. Deze aanpak is niet 100% waterdicht, want ander onderzoek suggereert dat mensen zelf ook steeds vaker woorden als “delves” en “intricates” gebruiken in normale spreektaal.
Wat iets “AI-achtig” laat klinken, is een vage mix van toon, ritme, herhaling en formulering die nog steeds wordt onderzocht. Dus hoewel we het meenemen als een belangrijke kwaliteitsas, is het er een die een meer experimentele aanpak vereist om te evalueren.
Welke modellen hebben we getest?
We hebben 18 goed presterende modellen getest van toonaangevende AI-labs en providers, waaronder GPT-4o, Claude 3, Gemini 1.5 en diverse LLaMA-, Mistral- en Qwen-varianten. Elk model werd aangeroepen via de bijbehorende API met hetzelfde promptformaat, en de reacties werden gescoord met een reeks geautomatiseerde evaluatiefuncties die op elke constraint waren toegesneden.
Geteste modellen (gegroepeerd per bedrijf/platform):
-
OpenAI (via de OpenAI API):
gpt-4o-2024-08-06(bijnaam gpt-4o-stable)gpt-4o-2024-11-20(bijnaam gpt-4o-writing)gpt-4o-minio3-mini
-
Anthropic (Claude):
claude-3-5-haiku-20241022claude-3-5-sonnet-20241022claude-3-7-sonnet-20250219
-
Google DeepMind (Gemini):
gemini-2.0-flashgemini-2.0-flash-litegemini-1.5-flashgemini-1.5-pro
-
Meta (via Together API):
meta-llama/Meta-Llama-3.1-8B-Instruct-Turbometa-llama/Llama-3.3-70B-Instruct-Turbometa-llama/Meta-Llama-3.1-405B-Instruct-Turbo
-
Alibaba (Qwen, via Together API):
Qwen/Qwen2.5-7B-Instruct-TurboQwen/Qwen2.5-72B-Instruct-Turbo
-
DeepSeek (via Together API):
deepseek-ai/DeepSeek-V3
-
Mistral (via Together API):
mistralai/Mistral-Small-24B-Instruct-2501- We hadden ook graag de grotere Mistral-modellen benchmarkt, maar werden beperkt door de beschikbaarheid in de Together API.
Elk model kreeg dezelfde instructie/gebruikersprompt-combinatie voorgelegd met een standaard temperatuurinstelling (doorgaans 0,7). De resulterende tekst werd vervolgens geëvalueerd met een taakspecifieke reeks regelgebaseerde functies (bijvoorbeeld regex, string pattern matching of numerieke parsing) om de naleving van de oorspronkelijke instructies te beoordelen.
Taak 1: Schrijfinstructies opvolgen
Overzicht van taken
Er is een grote verscheidenheid aan schrijfinstructies om te volgen. Veel daarvan gaan over de inhoud van de tekst, maar die laten we buiten beschouwing omdat ze moeilijk programmatisch te beoordelen zijn. In plaats daarvan richten we ons op stilistische en opmaakinstructies, omdat deze eenvoudig te controleren zijn met regex in Python.
Hier volgt een overzicht van de schrijfinstructies en hoe de output werd geëvalueerd:
- blacklist: modellen kregen te horen bepaalde woorden niet te gebruiken. De test controleerde op de aanwezigheid van verboden termen zoals “amazing” of “best.”
- blacklist_phrase: vergelijkbaar met blacklist, maar toegepast op volledige zinsdelen in plaats van losse woorden.
- bullets: beoordeelde of modellen bulletopmaak gebruikten of vermeden zoals geïnstrueerd (bijv. “Gebruik een bulletlijst” versus “Vermijd het gebruik van bullets”).
- case: instrueerde modellen om volledig in kleine letters, hoofdletters of titelhoofdletters te schrijven, en controleerde de consistentie daarvan.
- conciseness: beperkte het aantal woorden per zin (bijv. maximaal 10 woorden). Elke zin werd op naleving beoordeeld.
- date: testte naleving van een opgegeven datumnotatie zoals “YYYY-MM-DD.” Datums in de output werden geparsed en gecontroleerd.
- emoji: beoordeelde de aan- of afwezigheid van emoji’s, afhankelijk van de instructie.
- greeting: controleerde of modellen vermeden te beginnen met een begroeting zoals “Hi,” “Hey there,” of “Wow.”
- hashtag: beoordeelde of hashtags in kleine letters en zonder underscores waren (bijv. #electricbikes, niet #Electric_Bikes).
- length: vereiste dat de output een exact woordenaantal had (bijv. “Je output moet exact 100 woorden zijn.”).
- markdown: controleerde of modellen Markdown-syntax zoals *, ** en # vermeden als daarom werd gevraagd.
- numbers: beoordeelde of de getalnotatie de opgegeven duizend- en decimaalscheidingstekens volgde (bijv. 1.000,00).
- whitelist: vereiste opname van specifieke woorden (bijv. “Neem deze termen op: energy, remote, creator”)—er werd gecontroleerd of ze allemaal aanwezig waren.
Taakopbouw en promptsampling
Elke prompt die aan de modellen werd voorgelegd, werd opgebouwd door te samplen uit de lijst met bovenstaande taken. Bij het samplen werd willekeurig een mix van instructietypes geselecteerd, zoals:
- Emoji’s gebruiken of vermijden
- Schrijven in kleine letters/hoofdletters/titelhoofdletters
- Specifieke getal-/datumnotatie volgen
- Bepaalde woorden of zinsdelen op- of uitnemen
- Bulletpoints gebruiken of vermijden
- Zinslengte beperken voor beknoptheid
Voor elke gesamplede constraint werd een systeemprompt gegenereerd (bijv. “Gebruik geen emoji’s”) samen met een evaluatiefunctie om de naleving in de output van het model te controleren.
De gebruikersprompt—een kort social media-onderwerp zoals “De voordelen van thuiswerken” of “Waarom AI-schrijftools overgewaardeerd zijn”—werd gesampled uit een pool met realistische content-ideeën, die stuk voor stuk echte voorbeelden zijn van content die Sarah, Typetone’s AI-marketingagent, heeft bedacht.
Elk model kreeg dezelfde volledige prompt:
- Een systeemprompt die de stilistische en structurele regels vastlegt
- Een gebruikersprompt met het content-onderwerp
Deze gecombineerde prompt werd naar elk model gestuurd via de bijbehorende API-wrapper.
Resultaten van schrijfinstructies
-
Op het eerste gezicht lijken de taken niet al te moeilijk voor de modellen. Instructies voor begroetingen en datumnotatie zijn zeer eenvoudig, met alle modellen op 100%. Sommige andere categorieën zijn alleen lastig voor een paar modellen (hashtag, markdown, emoji, case), waarbij kleine modellen hier slecht op scoren.
-
De echte uitdaging zit in het vermijden van specifieke woorden en zinsdelen en het aanhouden van een bepaalde zinslengte. Geen enkel model kan “LLM-taal”-woorden in meer dan 90% van de gevallen vermijden. Dat is prima als je zelf met het model aan het chatten bent, maar het werkt niet voor productiewaardige, automatisch gegenereerde content.
-
Beknoptheid is eenvoudig voor o3-mini, wat geen verrassing is gezien zijn redeneervermogen. Het heeft in feite een hoop extra tokens tot zijn beschikking, vergeleken met alle andere modellen, om na te denken over hoe de tekst te schrijven en de zinslengte te plannen. Interessant is dat de niet-redenerende Qwen-modellen op deze taak ook echt goed presteren.
-
Als sommige van deze cijfers vreemd laag lijken, hier een voorbeeld van een behoorlijk flagrante overtreding van Mistral Small 3:
De prompt luidde: “Write all text in upper case. Use emojis in the text. Do not use any of these phrases in your output: in today’s, to the next level, fast-paced, changing the game, the future of, here’s why, a world where, the world of, the power of, not just about, whether you’re”
De output van Mistral bevatte: “AI is not just about automating processes”—een directe schending van de constraint.
Taak 2: Stilistische en woordenschatdiversiteit
Disclaimer: de volgende secties zijn behoorlijk technisch van aard; de casual lezer wordt aangeraden de volledige benchmarkresultaten te bekijken.
Evaluatiemethode
Met de tekst die tijdens de eerste taak was geproduceerd bij het volgen van de schrijfinstructies, konden we deze output ook evalueren op stilistische en woordenschatdiversiteit.
Woordenschatdiversiteit
Modellen hebben de neiging zinsopeners te hergebruiken:
“Ready to ditch writer’s block? Ready to ditch your wallet? Ready to future-proof your tech career?”
Dit meten is relatief eenvoudig. Je hoeft alleen te controleren of bepaalde woorden (unigrams) of woordparen (bigrams) door een model bovenmatig worden gebruikt.
Meetmethode: we gebruikten Expectation-Adjusted Distinct unigrams en bigrams (EAD) op de eerste zin. Hogere EAD = rijkere woordenschat.
Syntactische diversiteit
Maar zelfs zinnen die er verschillend uitzien, steunen vaak op vergelijkbare structuren, en kunnen alsnog repetitief gaan klinken.
“Creating a strong…” / “Finding the perfect…” / “Saving money…” → [Gerund Phrase] … but it …
Dit is lastiger te meten met een simpele woordopzoeking. Deze zinnen lijken op elkaar niet in welke woorden ze gebruiken, maar in hoe ze zijn opgebouwd.
Meetmethode: we hebben zinnen geparsed met Stanford CoreNLP om een dependency parse tree te verkrijgen. Een parse tree is een structuur die de opbouw van een zin verklaart in termen van zinsdelen en hun syntactische categorieën. De hele boom bekijken is behoorlijk complex, maar we merken dat de eerste paar woorden van een zin de grootste indruk maken op diversiteit wanneer je meerdere stukken content tegelijk bekijkt.
Daarom meten we syntactische diversiteit als de entropie van de categorieën van het eerste zinsdeel op het hoogste niveau, over alle eerste zinnen van teksten die door de LLM zijn geproduceerd.
Resultaten stijldiversiteit
-
Er is geen duidelijke winnaar die hoog scoort op zowel woordenschat- als syntactische diversiteit. o3-mini heeft de meest gevarieerde woordenschat, terwijl Gemini 1.5 Pro de meest gevarieerde zinsstructuur gebruikt in zijn tekst.
-
Maar er zijn een paar modellen die mooi in het midden van dit Pareto-front zitten. De schrijfgeoptimaliseerde release van GPT, Sonnet 3.5 en de kleinste Llama-versie lijken op beide metrics goed te scoren.
-
Hier volgen enkele illustratieve voorbeelden die de output van Gemini en GPT op dezelfde prompts laten zien, met de syntactische topcategorie per zin weergegeven:
-
gemini-1.5-pro ADVP: “Ever feel like UI design is a stressful juggling act?”
-
gpt-4o-2024-11-20 ADJP: “Ready to shine in UI design?”
-
gemini-1.5-pro ADVP: “Ever feel like data is a dazzling, coruscating enigma?”
-
gpt-4o-2024-11-20 NP: “Data is everywhere, yet many remain nonchalant about its potential!”
-
gemini-1.5-pro ADVP: “Ever feel like marketing is a whirlwind of algorithms and automation?”
-
gpt-4o-2024-11-20 SQ: “Is your marketing strategy purposeful or just adding to the noise?”
-
-
Om te visualiseren welke syntactische structuren door welk model worden geprefereerd, hebben we ook de verdelingen geplot. Hieruit blijkt dat naamwoordgroepen (noun phrases) de meest voorkomende opener zijn, met werkwoordgroepen (verb phrases) op een nauwe tweede plaats.
-
We hebben ook wordclouds gemaakt voor elk model op basis van de woordenschatverdeling, maar deze allemaal tonen zou wat veel worden voor deze blogpost. We delen hier de wordcloud voor het minst en meest diverse model (o3-mini is het meest divers, Gemini 2.0 Flash-Lite het minst divers).
Taak 3: Zelfevaluatievermogen
Tot slot wilden we bekijken hoe goed modellen zijn in redactietaken. De specifieke taken en experimenten vallen buiten het bereik van deze benchmark vanwege tijdsbeperkingen aan onze kant, maar één ding vormt daarvoor een belangrijke basis: het vermogen van LLM’s om schendingen van schrijfinstructies te detecteren.
Omdat we programmatisch konden vaststellen of de modellen de instructies volgden, konden we de werkelijke beoordeling ook vergelijken met de beoordeling van de LLM zelf. LLM’s worden steeds vaker gebruikt als evaluator, vooral in gevallen waarin codegebaseerde evaluaties niet haalbaar zijn. Maar om goed te zijn in redigeren, moeten modellen ook weten hoe ze fouten kunnen herkennen voordat ze die corrigeren.
Dit weerspiegelt bevindingen uit recent onderzoek, met name uit LLMBAR, een benchmark die specifiek is ontworpen om te testen hoe goed LLM’s kunnen functioneren als evaluator bij instructievolgende taken. Deze maakt onderscheid tussen output die er oppervlakkig goed uitziet en output die daadwerkelijk de instructies volgt.
Uit het onderzoek bleek dat:
- Zelfs topmodellen zoals GPT-4 vaak trappen in gepolijste maar incorrecte output.
- ChatGPT en andere populaire modellen presteerden slechter dan toeval bij adversarial voorbeelden.
- Promptstrategie ertoe doet: de reflectieprestatie verbetert aanzienlijk wanneer modellen gestructureerde evaluatieprompts krijgen met regels, metrics of referentie-output om mee te vergelijken.
Onze interne experimenten sluiten aan bij deze inzichten.
Waarom hebben LLM’s moeite met negatieve instructies en stijldiversiteit?
Negatieve constraints zijn lastig: een model vertellen iets niet te doen is verrassend moeilijk.
- Voorbeeld: “Avoid greeting the reader with ‘Hey there’… Also avoid starting with ‘Wow’ or ‘Boom’.” LLM: “Woah, 14% of PCs shipped worldwide…” → Oeps.
- Voorbeeld: “Don’t use ‘game-changer’.” LLM: “Empathy can be a game-changer.” → Dubbel oeps.
Dit is geen incidentele eigenaardigheid. Recent onderzoek, zoals studies van Truong et al. (2023) en Jang et al. (2022), onderzoekt specifiek hoe LLM’s omgaan met negatie en genegeerde prompts.
Hun bevindingen bevestigen dat “modellen over de hele linie—van GPT-achtige architecturen tot OPT—aanzienlijke moeite hebben met het begrijpen en correct opvolgen van negatieve instructies.” Wellicht het meest contra-intuïtief: dit onderzoek onthult een inverse scaling-fenomeen bij negatie. Waar we normaal gesproken verwachten dat grotere modellen beter presteren, ontdekten zowel Truong et al. als Jang et al. dat bij taken die het begrijpen van negatie vereisen (zoals identificeren wat iets niet is, of een incorrect antwoord genereren) grotere modellen vaak slechter presteren dan kleinere.
Dit suggereert dat het simpelweg vergroten van modellen het probleem van het begrijpen van “NOT” niet oplost—en het misschien zelfs verergert. Dit sluit aan bij onze benchmarkbevindingen, waarbij we hoge overtredingspercentages zagen voor blacklist-instructies bij verschillende modellen. Het wijst erop dat het probleem dieper zit dan alleen een gemist trefwoord; het gaat om het fundamenteel verwerken van het negatieve commando.
Gebrek aan stilistische diversiteit is een artefact van RLHF: de studie van Kirk et al. (2024) constateerde dat “modellen die zijn fine-getuned met Reinforcement Learning from Human Feedback (RLHF)—het proces dat veelvuldig wordt gebruikt voor modellen zoals ChatGPT en Claude—aanzienlijk lagere EAD-scores laten zien vergeleken met modellen die simpelweg zijn fine-getuned op voorbeelden.”
Dit duidt erop dat RLHF-modellen de neiging hebben een smaller bereik aan woorden en zinsdelen te gebruiken, vooral bij het genereren van meerdere mogelijke uitvoeren voor dezelfde input (lagere diversiteit per input).
Conclusie
Onze benchmark, in de context van recent onderzoek, geeft een duidelijker beeld van de mogelijkheden en beperkingen van moderne LLM’s op het gebied van schrijven:
Belangrijkste inzichten:
- LLM-taal is echt: overmatig gebruikte woorden en patronen ondermijnen authenticiteit.
- Negatieve en lengte-instructies zijn lastig: vooral wanneer constraints negatief of precies zijn.
- Diversiteit wordt opgeofferd: RLHF verbetert weliswaar de generalisatie, maar vermindert aantoonbaar de outputdiversiteit (mode collapse), zowel lexicaal als structureel (Kirk et al.). SFT behoudt meer diversiteit maar is mogelijk minder robuust bij ongeziene input.
- De afweging tussen generalisatie en diversiteit: er lijkt een inherente spanning te bestaan tussen modellen goed laten generaliseren (de kracht van RLHF) en ze gevarieerde output laten produceren (de kracht van SFT), met de huidige fine-tuning-methoden (Kirk et al.).
Kortom, er is geen duidelijke winnaar die op elke dimensie van creatief schrijven en redigeren uitblinkt. Wil je modellen die minder als AI klinken, kijk dan naar Claude Sonnet 3.5. Wil je meer gevarieerde output, dan is een klein model zoals Llama 3.1-8B misschien een goede keuze (of kijk naar een niet-Instruct-model).
Maar in beide gevallen—vergeet niet je evals te doen, mensen!