Catastrofaal vergeten bij het finetunen van LLM's
Wanneer je een taalmodel aanpast voor een specifieke taak door middel van finetuning, ontstaat er vaak een onzichtbaar probleem: het model presteert uitstekend op de nieuwe trainingsdata, maar verliest gaandeweg fundamentele vaardigheden die het tijdens de initiële training heeft opgedaan. Dit fenomeen staat in de machineleren-literatuur bekend als catastrofaal vergeten (catastrophic forgetting).
Het verraderlijke aan catastrofaal vergeten is dat je het niet direct terugziet in de reguliere trainingsstatistieken. De verliesfunctie (loss curve) op je specifieke dataset daalt gestaag, en de evaluatiestatistieken voor de doeltaak laten uitstekende resultaten zien. Pas wanneer het model in een productie-omgeving wordt geplaatst en geconfronteerd wordt met meer algemene vragen, wordt duidelijk dat er cruciale capaciteiten verloren zijn gegaan. Om beter te begrijpen hoe dit proces werkt op neuraal niveau, is het nuttig om te kijken naar de basisprincipes van hoe een AI leert.
Wat het verschijnsel precies inhoudt
Bij het finetunen van een groot taalmodel worden de gewichten van het netwerk aangepast op basis van een nieuwe dataset. Het model probeert de patronen in deze nieuwe data zo nauwkeurig mogelijk vast te leggen. Tijdens dit proces overschrijven de gradiëntupdates de bestaande parameters die verantwoordelijk waren voor eerder aangeleerde kennis en vaardigheden.
Het fenomeen is niet uniek voor taalmodellen, maar bij neurale netwerken in het algemeen manifesteer het zich zeer uitgesproken. Omdat een neuraal netwerk geen gescheiden geheugenmodules heeft zoals een traditionele computer, is kennis gedistribueerd over de gehele architectuur. Wanneer de gewichten veranderen om taak A te optimaliseren, vervaagt de configuratie die nodig was om taak B correct uit te voeren.
In de praktijk betekent dit dat een model dat is bijgetraind om juridische documenten samen te vatten, plotseling moeite kan hebben met eenvoudige rekenkundige stappen, de syntaxis van een programmeertaal niet meer begrijpt, of niet langer in staat is om een gestructureerd format zoals JSON vast te houden.
Waarom het gebeurt op parameterniveau
Om te begrijpen waarom catastrofaal vergeten optreedt, moet je kijken naar de interne representatie van een transformermodel. Een groot taalmodel slaat zijn kennis op in miljarden gewichten. Deze gewichten vormen samen een zeer hoogdimensionale landschap waarin relaties tussen concepten, grammatica, feiten en redeneerstappen zijn vastgelegd.
In tegenstelling tot een database waar elk gegeven een eigen adres heeft, delen bijna alle vaardigheden in een neuraal netwerk dezelfde parameters. Kennis zit letterlijk opgeborgen in de onderlinge verhoudingen van de gewichten. Wanneer je het model traint op een nieuwe dataset, worden de gewichten door middel van backpropagation bijgesteld. De richting van deze bijstelling wordt uitsluitend bepaald door de foutmarge op de nieuwe voorbeelden.
Omdat het model tijdens het finetunen geen toegang heeft tot de oorspronkelijke pre-trainingsdata, heeft het algoritme geen 'besef' van het belang van specifieke gewichtsverhoudingen voor oude taken. De gewichten die essentieel waren voor de oude vaardigheden worden zonder restrictie verschoven naar waarden die optimaal zijn voor de nieuwe trainingsvoorbeelden. Hoe groter de stapgrootte (leersnelheid) en hoe langer de training duurt, hoe verder de gewichten afraken van hun oorspronkelijke, gebalanceerde toestand.
Waarom taalmodellen extra kwetsbaar zijn
Grote taalmodellen zijn ontworpen als generieke systemen. Hun kracht schuilt in een breed scala aan abstracte, overkoepelende vaardigheden. Denk hierbij aan:
- Het begrijpen en uitvoeren van instructies (instruction following).
- Meertaligheid en het vertalen tussen verschillende talen.
- Redeneervermogen en logische stappen zetten.
- Veiligheidsfilters en het weigeren van schadelijke verzoeken.
- Formatting-vereisten, zoals het genereren van geldige HTML, JSON of Markdown.
Deze generieke vaardigheden zijn niet gelokaliseerd in één specifieke laag of een afgebakende groep neuronen; ze zijn breed verdeeld over het gehele netwerk. Wanneer je een model gaat bijtrainen op een specifieke taak — bijvoorbeeld het converteren van klantvragen naar interne database-queries — stelt het model alles in het werk om de fout op die specifieke taak te minimaliseren.
Doordat de generieke vaardigheden zo breed over het netwerk verspreid liggen, raakt vrijwel elke gewichtsverandering deze subtiele structuren. Een model dat uitsluitend wordt blootgesteld aan beknopte, specifieke antwoorden, verleert de fijngevoeligheid die nodig is om nuances in taal te begrijpen of om veilige, ethische grenzen te bewaren.
De signalen van catastrofaal vergeten
Het herkennen van catastrofaal vergeten vereist actieve monitoring, omdat het niet direct blijkt uit de verliesfunctie van je trainingsset. Er zijn verschillende duidelijke signalen die erop wijzen dat een gefinetuned model zijn brede functionaliteit verliest:
| Signaal | Omschrijving | Oorzaak |
|---|---|---|
| Eentonigheid in taalgebruik | Het model gebruikt herhaaldelijk dezelfde zinsstructuren en verliest de variatie in woordkeus. | Overmatig aanpassen aan het specifieke idioom van de finetune-dataset. |
| Klapklap-gedrag / Overshooting | Het model geeft op elke vraag een antwoord in de stijl van de trainingsdata, ook als de vraag daar niet om vraagt. | De interne sturing is volledig overgenomen door het nieuwe domein. |
| Erosie van veiligheidsgedrag | Het model geeft antwoord op schadelijke verzoeken die het basismodel correct zou weigeren. | De gewichten voor de instructie- en veiligheidsafstemming (RLHF/DPO) zijn overschreven. |
| Taalverval | Het model presteert plotseling slecht in het Nederlands, terwijl de finetune-set hoofdzakelijk Engelstalig was. | Verschuiving in het ruimtelijke waardenbereik van de token-embeddings en attentielagen. |
Een veelvoorkomend scenario ontstaat bij het bijtrainen op specifieke codevoorbeelden. Het model kan na training uitstekend code schrijven in de doeltaal, maar blijkt niet langer in staat om in normaal Nederlands uit te leggen wat de code precies doet. Het antwoord vervalt in een mengelmoes van syntaxis en fragmentarische uitspraken.
Maatregelen om vergeten te voorkomen
Er bestaan diverse strategieën om catastrofaal vergeten tegen te gaan. Deze variëren van eenvoudige aanpassingen in de hyperparameterinstellingen tot meer geavanceerde architecturale keuzes en datamanagement. We behandelen de maatregelen op volgorde van complexiteit en vereiste inspanning.
1. Terughoudende hyperparameters (Lagere leersnelheid en minder epochs)
De meest directe manier om het overschrijven van gewichten te beperken, is het aanpassen van de trainingsparameters. Bij het finetunen van een pre-trained model moet de leersnelheid (learning rate) aanzienlijk lager liggen dan bij training vanaf nul. Typische waarden voor finetuning liggen tussen de 1e-5 en 5e-6, afhankelijk van de grootte van het model.
Daarnaast is het aantal doorgangen door de data (epochs) cruciaal. Waar bij traditionele neurale netwerken soms tientallen epochs worden gebruikt, is bij grote taalmodellen één tot drie epochs vaak ruimschoots voldoende. Hoe vaker het model dezelfde voorbeelden ziet, hoe sterker de drang om de gewichten exclusief voor die dataset te optimaliseren.
2. Het bevriezen van lagen (Layer freezing)
Een stap verder is het expliciet blokkeren van gewichtsveranderingen in een deel van het netwerk. Bij deze techniek worden de onderste lagen van het model bevroren. Deze onderste lagen bevatten over het algemeen de meest fundamentele representaties van taal, zoals syntaxis, algemene grammaticaregels en basale tokenrelaties.
Door alleen de bovenste lagen van het netwerk aanpasbaar te maken, behoudt het model zijn fundamentele taalbegrip, terwijl de hogere lagen worden afgestemd op de specifieke taak. Dit vermindert het risico op catastrofaal vergeten, al beperkt het ook de mate waarin het model zich aan een compleet nieuw domein kan aanpassen.
3. Gebruikmaken van adapters (LoRA / PEFT)
In plaats van het volledige model (alle gewichten) aan te passen, maken moderne finetuning-workflows veelal gebruik van Parameter-Efficient Fine-Tuning (PEFT), waarvan Low-Rank Adaptation (LoRA) de bekendste variant is. Bij deze benadering blijven alle oorspronkelijke gewichten van het basismodel volledig bevroren en ongewijzigd.
Er worden kleine, extra gewichtsmatrices (adapters) toegevoegd aan specifieke lagen van het netwerk. Alleen de waarden in deze adapters worden getraind. Omdat het oorspronkelijke model intact blijft, zou je kunnen aannemen dat catastrofaal vergeten hiermee volledig is opgelost. Dit is echter een misvatting, zoals in de volgende paragraaf wordt toegelicht. Mocht je overwegen om een dergelijk model op te zetten, zie dan de gids voor lokaal finetunen met LoRA voor een praktische handleiding.
4. Data-replay en het bijmengen van generieke data
De meest effectieve methode om het model breed inzetbaar te houden op de volledige parameterset, is het bijmengen van algemene trainingsvoorbeelden. Dit proces staat bekend als data-replay of experience replay.
Hierbij voeg je aan je specifieke finetune-dataset een percentage toe van een algemene, hoogwaardige instructiedataset. Deze algemene dataset bevat divers materiaal: open vragen, meertalige teksten, redeneertaken en ethische casussen. Door het model tijdens elke trainingsstap tevens bloot te stellen aan deze algemene voorbeelden, worden de gradiëntupdates gedwongen om rekening te houden met de brede vaardigheden.
Let op: Het bijmengen van data vereist een zorgvuldige afweging. Als je te veel algemene data bijmengt, verwatert het effect van je specifieke training en leert het model de gewenste taak niet goed. Meng je te weinig bij, dan treedt er alsnog catastrofaal vergeten op. De optimale verhouding is afhankelijk van de taak en de omvang van je eigen dataset en moet proefondervindelijk worden vastgesteld.
Waarom adapters het risico verkleinen, maar niet wegnemen
Het gebruik van adapters zoals LoRA wordt vaak gezien als een gegarandeerde bescherming tegen catastrofaal vergeten. Omdat de basisgewichten niet veranderen, kan het basismodel immers niet 'beschadigd' raken. Toch kan een model met een geactiveerde adapter in de praktijk precies hetzelfde vergetengedrag vertonen.
De reden hiervoor ligt in de manier waarop de uitvoer van de adapter wordt gecombineerd met de uitvoer van het basismodel. De adapter werkt als een modificatielaag die de activaties van het netwerk bijstatuurt. Als de adapter zo is getraind dat hij dominante, uitgesproken sturingssignalen afgeeft, kan hij de nuttige signalen van het basismodel effectief onderdrukken of overschrijven.
Hoewel de oorspronkelijke kennis nog steeds fysiek in de bevroren gewichten aanwezig is, kan de rekenketen er door de interferentie van de adapter niet meer bij komen. Zodra de adapter actief is, vertoont het gecombineerde systeem exact dezelfde symptomen van catastrofaal vergeten als een volledig gefinetuned model. De winst van een adapter zit er vooral in dat het proces omkeerbaar is: het uitschakelen van de adapter herstelt direct het oorspronkelijke model gedrag. Voor meer achtergrond over hoe deze technieken zich tot elkaar verhouden, kun je het artikel over adapters en LoRA bekijken.
Evalueren en meten: je ziet het alleen als je zoekt
Een van de grootste gevaren van catastrofaal vergeten is dat het onopgemerkt blijft tijdens de standaard validatie. Als je de prestaties van je model uitsluitend meet op een willekeurige steekproef van je eigen finetune-dataset (de validation loss), zie je alleen maar positieve resultaten. Het model wordt immers steeds beter in die specifieke taak.
Om catastrofaal vergeten op te sporen, moet je een evaluatiemethode hanteren die losstaat van de doeltaak. Dit vereist een vaste toetsset (evaluation benchmark) met diverse, algemene taken die vóór en na het finetunen op het model worden uitgevoerd.
Een doordachte evaluatiestrateeg omvat de volgende stappen:
- Nulmeting uitvoeren: Test het ongewijzigde basismodel op een brede set benchmarktaken (zoals algemene taalvaardigheid, logisch redeneren en instructievolging in het Nederlands).
- Specifieke toetsing: Test de prestaties op de beoogde taak vóór training.
- Finetunen: Voer de gewenste gewichtsaanpassingen uit.
- Vergelijkende meting: Voer na afloop exact dezelfde brede benchmark uit als bij stap 1, naast de toetsing op de specifieke taak.
Pas wanneer je de resultaten van de nulmeting vergelijkt met de situatie na finetuning, zie je of er sprake is van achteruitgang op de algemene domeinen. Het opzetten van dergelijke systematische controles sluit nauw aan bij het uitvoeren van regressietesten voor taalmodellen.
De gevaren van opeenvolgend bijtrainen
Het probleem van catastrofaal vergeten verergert exponentieel wanneer een model in meerdere opeenvolgende fasen wordt bijgetraind. Stel dat een organisatie een model eerst bijtraint op taak A, de nieuwe gewichten opslaat, dit model vervolgens bijtraint op taak B, en later nogmaals op taak C.
Bij elke trainingsronde schuiven de gewichten verder af van het oorspronkelijke, stabiele punt dat tijdens de grootschalige pre-training is bereikt. Na enkele opeenvolgende stappen is de interne structuur dusdanig vervormd dat het model niet alleen de vaardigheden van taak A en B is kwijtgeraakt, maar ook de algemene robuustheid en taalbeheersing heeft verloren.
Het is daarom een 'best practice' in de industrie om bij nieuwe wensen of extra data altijd terug te keren naar het schone, oorspronkelijke basismodel. In plaats van doortrainen op een reeds aangepast model, voeg je de nieuwe trainingsdata samen met de oude trainingsdata en voer je één enkele, gecombineerde finetuning-run uit vanaf de basis.
Wanneer vergeten acceptabel of juist wenselijk is
Hoewel catastrofaal vergeten over het algemeen als een risico wordt beschouwd, zijn er specifieke toepassingen waarin het verlies van algemene vaardigheden geen enkel probleem is — of zelfs een bewuste keuze.
Wanneer een taalmodel wordt ingezet voor één specifieke, sterk afgebakende taak in een geautomatiseerde pipeline (bijvoorbeeld het omzetten van ongestructureerde medische logs naar een gestructureerd XML-formaat), heeft het model geen behoefte aan algemene kennis, creatief schrijven of meertaligheid. In zulke gevallen is het verlies van die nevenvaardigheden niet relevant. Het model hoeft immers nooit een algemeen gesprek te voeren met een eindgebruiker.
In bepaalde gevallen kan het inperken van de algemene functionaliteit zelfs voordelen bieden. Een model dat door finetuning zijn algemene conversatievaardigheden heeft verloren, is vaak minder gevoelig voor *jailbreaking* of ongewenste afwijkingen van de voorgeschreven taak. Het model is puur een gespecialiseerde verwerkingseenheid geworden. Voor een brede afweging van de kosten, risico's en alternatieven van dit proces kun je kijken naar het overzicht van kant-en-klare modellen versus finetunen, of de vergelijking tussen finetuning, prompting en RAG raadplegen.
Conclusie over de balans bij finetunen
Catastrofaal vergeten is een fundamentele eigenschap van neurale netwerken die voortkomt uit de manier waarop kennis in gewichten wordt opgeslagen. Het vereist een heldere aanpak tijdens het gehele traject van dataselectie, training en evaluatie. Door hyperparameters terughoudend in te stellen, efficiënte adapterstructuren toe te passen, voldoende generieke data bij te mengen en altijd gestructureerde regressietesten uit te voeren op het basismodel, kun je de gewenste specifieke vaardigheden toevoegen zonder het fundament van het taalmodel te beschadigen.


