Waarom hallucineren kleine lokale modellen vaker bij JSON-uitvoer?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Kleine lokale modellen hallucineren vaker tijdens het genereren van JSON, omdat ze de taak moeten uitvoeren en tegelijkertijd een rigide schema en geldige syntaxis moeten behouden.

Een lokale AI-workflow kan een compact model vragen om bestandsnamen, datums, tags, apparaatstatussen of automatiseringsargumenten te extraheren en deze als machineleesbare JSON terug te geven. Het model voert daarbij niet één taak uit. Het moet de juiste feiten identificeren, deze aan de bedoelde velden koppelen, vereiste typen en enumeraties respecteren, interpunctie en nesting onthouden en stoppen zonder commentaar toe te voegen. Wanneer de modelcapaciteit beperkt is, concurreren deze vereisten met het redeneervermogen dat nodig is om de waarden aan de bron te blijven koppelen.

JSON maakt correctheid tot een probleem met twee lagen

Het antwoord moet tegelijkertijd semantisch correct en structureel geldig zijn. Een antwoord in vrije tekst kan onzekerheid uitdrukken of uitleggen waarom een waarde ontbreekt, terwijl een JSON-contract het model vaak verplicht een veldwaarde te kiezen, zelfs wanneer het bewijs zwak is.

Onderzoek naar de afweging tussen geldigheid en correctheid laat zien waarom deze metingen afzonderlijk moeten blijven: strengere uitvoerbeperkingen kunnen de schemageldigheid verbeteren, terwijl de geselecteerde waarden minder nauwkeurig worden.

Bij een klein lokaal model is deze druk duidelijker, omdat het minder reservecapaciteit heeft voor het volgen van instructies, extractie en serialisatie. Een groter model kan nog steeds een veld verzinnen, maar bij een compact model verdringt naleving van het formaat de kwaliteit van het antwoord sneller.

Een geldig object kan nog steeds een gehallucineerd antwoord bevatten

Beperkte decoding kan voorkomen dat een illegale accolade, onbekende sleutel of ongeldige enumeratie wordt gegenereerd. Het kan niet bewijzen dat de gekozen klant-ID, datum, het pad of de status in het bronmateriaal staat.

vLLM beschrijft JSON-schema-beperkingen als een manier om de vorm van de gegenereerde uitvoer te beperken. De decoder verkleint het aantal tokens dat als volgende stap toegestaan is, maar het model levert nog steeds de betekenis die door deze toegestane tokens wordt gedragen.

Dit leidt tot een gevaarlijke foutmodus voor automatisering: het object wordt succesvol geparsed, waardoor downstreamcode erop vertrouwt, terwijl één veld is verzonnen. Valideer bedrijfsregels en bronbewijs na de schemavalidatie, in plaats van parse-succes te behandelen als feitelijke correctheid.

Geneste schema's vergroten het aantal vertakkingen en de vereiste toestandsbewaking

Elke vereiste eigenschap, optionele vertakking, geneste array, nullable veld en enumeratie voegt toestand toe die het model tijdens het genereren moet bijhouden. Vergelijkbare sleutelnamen of herhaalde objectstructuren maken het eenvoudiger om een correcte waarde op de verkeerde plek te plaatsen.

De llama.cpp-handleiding voor JSON met grammaticabeperkingen maakt onderscheid tussen de toegestane uitvoergrammatica en de prompt die uitlegt wat de velden betekenen. Een grammatica kan de structuur afdwingen, maar het schema heeft nog steeds duidelijke semantische instructies nodig.

Beperk het aantal gelijktijdige beslissingen. Maak diep geneste objecten vlakker, verwijder ongebruikte optionele velden, gebruik onderscheidende sleutelnamen en splits een grote extractie op in kleinere objecten wanneer het lokale model herhaaldelijk velden verwisselt of irrelevante velden invult.

Prompts die alleen JSON toestaan kunnen nuttige redeneringen onderdrukken

Een strikte instructie als ‘geef alleen JSON terug’ dwingt het model om een antwoord onmiddellijk te verpakken. Bij een moeilijke extractie kan dat leiden tot een vroege veldkeuze, voordat het model concurrerende passages heeft vergeleken of een ambigue datum heeft opgelost.

Evaluaties van Hugging Face tonen gevoeligheid voor de promptindeling: het wijzigen van de verwachte structuur en de beschikbare ruimte voor redeneringen kan de taakprestaties veranderen, zelfs wanneer de onderliggende vraag hetzelfde blijft.

Maak geen private chain-of-thought zichtbaar, maar scheid het oplossen van de interne taak van de uiteindelijke serialisatie. De workflow kan eerst een compact bewijsrecord extraheren of een deterministische lookup uitvoeren en het model daarna vragen alleen de geverifieerde velden weer te geven.

JSON via prompts en beperkte decoding falen op verschillende manieren

JSON die alleen via een prompt wordt gevraagd, kan codeblokken, commentaar, dubbele sleutels, afsluitende komma's of een onafgemaakt object bevatten. Beperkte decoding verwijdert veel syntactische fouten, maar kan het model dwingen te kiezen uit geldige waarden wanneer ‘onbekend’ niet was toegestaan.

Fireworks legt uit hoe tokenkeuzes met schemabeperkingen de generatie binnen een uitvoercontract houden, terwijl de prompt nog steeds nauwkeurig moet beschrijven welke gegevens bedoeld zijn.

Houd beide foutcategorieën bij. Meet parsefouten bij uitvoer die alleen via een prompt wordt gestuurd en meet vervolgens onjuiste maar geldige velden, ongewenste standaardwaarden en schijnzekerheid nadat beperkte decoding is ingeschakeld.

Sampling en afkapping versterken kleine fouten

Een hogere temperatuur kan de keuze van sleutels en veldwaarden variëren, terwijl een ontoereikend tokenbudget arrays of afsluitende accolades kan afkappen. Een lagere temperatuur vermindert variatie, maar maakt een niet-onderbouwde waarde niet waar.

Een praktische beoordeling van een lokale pipeline voor gestructureerde uitvoer laat zien waarom validatie en beperkte generatie afzonderlijke onderdelen zijn in plaats van één truc met prompts.

Reserveer voldoende uitvoertokens voor het grootste toegestane object, beperk de arraylengte en probeer alleen het mislukte gedeelte opnieuw. Het opnieuw genereren van het volledige object kan velden die al correct waren vervangen door nieuwe hallucinaties.

Gebruik een lokale JSON-pipeline in twee stappen

Los de taak eerst op in een minimaal getypeerd record: het exacte bronfragment, de genormaliseerde datum, de geselecteerde identificatie, de betrouwbaarheidsstatus en elke expliciet ontbrekende waarde. Deze stap moet het verzoek kunnen afwijzen in plaats van vereiste gegevens te verzinnen.

Geef dat record daarna weer via een decoder met schemabeperkingen, parse het en voer semantische controles uit, zoals het bestaan van bestanden, het datumbereik, compatibiliteit met enumeraties en consistentie tussen velden. Een validator moet gerichte fouten teruggeven die aangeven welk veld moet worden hersteld.

ZimaSpace's uitleg over waarom een kleiner model betrouwbaarder kan zijn geeft de grens aan: compacte modellen werken het best wanneer de taak, context, toolset en het uitvoercontract beperkt genoeg zijn om te kunnen verifiëren.

Veelgestelde vragen

Betekent geldige JSON dat het model niet heeft gehallucineerd?

Nee. Geldige JSON bewijst dat het object de syntaxis- of schemaregels volgt. Het bewijst niet dat de veldwaarden uit de bron komen of overeenkomen met de werkelijke systeemstatus.

Lost een temperatuur van nul JSON-hallucinaties op?

Nee. De uitvoer kan hierdoor herhaalbaarder worden, maar een consequent gekozen, niet-onderbouwde waarde blijft een hallucinatie.

Is beperkte decoding voldoende voor automatisering?

Nee. Gebruik het in combinatie met brongebaseerde extractie, schemaparsing, semantische validatie en een veilige afwijzingsroute voor ontbrekende of ambigue gegevens.

Tech & AI HUB

Meer om te lezen

Waarom veranderen AI-fotolabels na een modelupgrade?
Aug 08, 2026

Waarom veranderen AI-fotolabels na een modelupgrade?

Een modelupgrade verandert de representatie en rangschikking die worden gebruikt om labels toe te wijzen, waardoor dezelfde foto verschillende semantische of betrouwbaarheidsgrenzen kan overschrijden.

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.