# Lokaal finetunen met LoRA: praktische gids | LLMnet

Deel:[𝕏](https://twitter.com/intent/tweet?url=https%3A//gids.llmnet.nl/lokale-llm-fine-tuning-lora&text=Lokaal%20finetunen%20met%20LoRA%3A%20praktische%20gids)[LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A//gids.llmnet.nl/lokale-llm-fine-tuning-lora)[Reddit](https://www.reddit.com/submit?url=https%3A//gids.llmnet.nl/lokale-llm-fine-tuning-lora&title=Lokaal%20finetunen%20met%20LoRA%3A%20praktische%20gids)[Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A//gids.llmnet.nl/lokale-llm-fine-tuning-lora)[Kopieer link](#)

# Lokaal finetunen met LoRA: praktische gids

Door Ivo Donker — samengesteld met AI-ondersteuning (Claude & Gemini) · Laatst bijgewerkt: 6 augustus 2026

Het lokaal aanpassen van grote taalmodellen is een effectieve methode om een AI-model af te stemmen op een specifieke taak, schrijfstijl of uitvoerformaat. Met technieken zoals Low-Rank Adaptation (LoRA) is het niet langer noodzakelijk om miljarden parameters opnieuw te trainen. In plaats daarvan voeg je een kleine, koppelbare laag toe aan het basismodel. In deze gids doorlopen we het volledige proces van lokaal finetunen met LoRA: van het bepalen van de juiste strategie tot datapreparatie, instellingen, evaluatie en integratie.

## Wanneer is finetunen de juiste keuze?

Voordat je begint met het verzamelen van data en het inrichten van een trainingsomgeving, is het essentieel om te bepalen of finetunen daadwerkelijk de geschikte oplossing is voor je probleem. Een veelgemaakte denkfout is dat finetunen dient om een model nieuwe kennis bij te brengen. In de praktijk blijkt een taalmodel echter moeite te hebben met het betrouwbaar opslaan van exacte feiten via gewichtsaanpassingen. Voor het toevoegen van actuele, specifieke of dynamische informatie is een Retrieval-Augmented Generation (RAG) systeem bijna altijd de betere route.

Finetunen leent zich primair voor het aanpassen van de vorm, de stijl en het gedrag van de uitvoer. Denk hierbij aan het afdwingen van een specifiek JSON-schema, het overnemen van een specifieke bedrijfstoon, het aanleren van een vaste domeintaal of het consequent volgen van complexe instructies. Raadpleeg voor een uitgebreide vergelijking tussen deze benaderingen het overzicht van [finetuning vs prompting vs RAG](https://leren.llmnet.nl/finetuning-vs-prompting-vs-rag) op ons kennisnetwerk.

Kernregel: Gebruik RAG als het model feitelijke informatie moet opzoeken; gebruik finetunen als het model de informatie anders moet formuleren, structureren of verwerken.

## Wat haal je lokaal realistisch in huis?

Het trainen van een groot taalmodel vanaf nul (pre-training) vereist enorme hoeveelheden rekenkracht en datacenters vol gespecialiseerde hardware. Thuis of op een lokaal werkstation train je daarom nooit het volledige basismodel. Met LoRA vries je de oorspronkelijke gewichten van het basismodel in en koppel je kleine, aanpasbare gewichtsmatrices aan specifieke lagen. Dit reduceert het aantal te trainen parameters drastisch, waardoor de geheugenvereisten en de verwerkingslast sterk afnemen.

Om te begrijpen hoe deze adapters op wiskundig niveau werken zonder de parameters van het basismodel permanent te overschrijven, kun je het artikel over [LoRA en adapters uitgelegd](https://leren.llmnet.nl/lora-en-adapters-uitgelegd) raadplegen. Voor de praktijk betekent dit dat je op een consumenten-GPU met voldoende werkgeheugen succesvol een adapter kunt trainen op bestaande open-weights modellen. Zorg er wel voor dat de fysieke hardware in balans is; bekijk hiervoor de eisen voor [hardware voor lokale LLM's](https://gids.llmnet.nl/hardware-voor-lokale-llm).

## De dataset: het fundament van het project

De kwaliteit en de opbouw van de dataset bepalen voor het grootste deel het uiteindelijke succes van de LoRA-adapter. Een klein bestand van hoge kwaliteit levert steevast betere resultaten op dan een grote set vol inconsistenties.

### Omvang van de trainingsset

Voor het aanleren van een specifieke schrijfstijl of een vast uitvoerformaat zijn vaak enkele honderden tot enkele duizenden kwalitatieve voorbeelden voldoende. Het gaat erom dat de dataset voldoende variatie vertoont binnen de gewenste structuur, zonder dat het model steeds dezelfde zinnen herhaalt.

### Opbouw in het juiste gespreksformaat

De trainingsvoorbeelden moeten exact hetzelfde formaat hebben als de interactie die het basismodel verwacht. Als het model werkt met specifieke rollen (zoals systeem, gebruiker en assistent), moet elk trainingsvoorbeeld volgens die exacte structuur opgebouwd zijn. De invoer vertegenwoordigt de prompt van de gebruiker, en de gewenste uitvoer is de respons van de assistent waarop het model zijn gewichten aanpast.

### Aanmaken van een achtergehouden set (holdout set)

Splits de verzamelde data vanaf het begin op in twee delen: een trainingsset en een achtergehouden validatieset. De validatieset wordt nooit gebruikt tijdens de gradient updates. Dit deel dient uitsluitend om tijdens en na de training te controleren of het model de patronen echt generaliseert of simpelweg de trainingszinnen uit het hoofd leert.

## Datakwaliteit en de impact van ruis

Taalmodellen zijn uitermate gevoelig voor patronen in de trainingsdata. Wanneer een dataset spelfouten, tegenstrijdige antwoorden op soortgelijke vragen of wisselende opmaken bevat, zal de adapter dit onvoorspelbare gedrag rechtstreeks overnemen.

Probleem in dataset | 
Gevolgen voor de adapter | 
Oplossing vooraf | 

Inconsistente JSON-sleutels | 
Model genereert ongeldige of wisselende structuren | 
Valideer de JSON-structuur van elk voorbeeld met een parser | 

Tegenstrijdige antwoorden | 
Model raakt in verwarring en geeft onstabiele uitkomsten | 
Verwijder of harmoniseer dubbele/overlappende vragen | 

Wisselend taalgebruik | 
Stijl en toon worden onvoorspelbaar | 
Stel duidelijke richtlijnen op voor de assistent-antwoorden | 

Overtollige systeemheaders | 
Model leert foutieve instructiemarkeringen aan | 
Opschonen van alle ruwe opmaaktekens voor verwerking | 

Schoon de dataset grondig op voordat je de training start. Gebruik geautomatiseerde scripts om te controleren op lege velden, afwijkende lengtes en foute opmaak. Voer daarnaast handmatige steekproeven uit om te verifiëren of de antwoorden exact overeenkomen met de gewenste standaard.

## De belangrijkste instellingen in gewone taal

Tijdens het instellen van de training tref je een aantal hyperparameters aan. Het is belangrijk om te begrijpen hoe deze knoppen de training beïnvloeden, zonder dat je willekeurige waarden overneemt.

### Rangorde van de adapter (Rank / r)

De rangorde bepaalt de omvang van de adaptermatrices. Een lagere rangorde betekent dat er minder parameters worden toegevoegd, wat minder geheugen kost en de training vereenvoudigt. Een hogere rangorde biedt de adapter meer capaciteit om complexe patronen op te slaan, maar verhoogt het risico op overpassen en vraagt meer van de hardware.

### Doellagen (Target Modules)

Je kunt ervoor kiezen om de LoRA-adapter aan te haken op alleen de aandachtslagen (attention layers) of ook op de feed-forward netwerken binnen het model. Het toepassen van LoRA op alle lineaire lagen geeft de adapter de meeste flexibiliteit om de stijl aan te passen, maar verhoogt het aantal te trainen parameters.

### Leersnelheid (Learning Rate)

De leersnelheid bepaalt hoe sterk de gewichten worden aangepast bij elke stap op basis van de foutmarge. Een te hoge leersnelheid kan ervoor zorgen dat het model bestaande kennis verleert of dat het trainingsproces instabiel wordt. Een te lage leersnelheid zorgt ervoor dat de adapter nauwelijks verandert en de gewenste stijl niet overneemt.

### Aantal doorlopen (Epochs) en batchgrootte

Het aantal doorlopen geeft aan hoe vaak het model de volledige trainingsset te zien krijgt. De batchgrootte bepaalt hoeveel voorbeelden tegelijk worden verwerkt voor één gewichtsaanpassing. Wanneer het hardwaregeheugen beperkt is, kan een kleine micro-batchgrootte worden gecombineerd met gradiëntaccumulatie om toch een stabiele virtuele batchgrootte te bereiken.

## Het promptsjabloon: de meest gemaakte valkuil

Grote taalmodellen worden getraind met specifieke scheidingstekens om aan te geven wanneer een systeeminstructie, gebruikersvraag of assistent-antwoord begint en eindigt. Het strikt aanhouden van dit exacte promptsjabloon is cruciaal tijdens het finetunen.

Als je tijdens het trainen afwijkt van de verwachte tokens van het basismodel — bijvoorbeeld door eigen scheidingstekens te verzinnen of rollen verkeerd te labelen — leert het model de relatie tussen invoer en uitvoer verkeerd aan. De adapter zal in dat geval lokaal vreemd gedrag vertonen of helemaal niets lijken te doen wanneer je hem aanspreekt via een standaard runner. Zorg er daarom voor dat je bij het selecteren van het basismodel exact weet welke sjablonen worden gehanteerd. Raadpleeg het artikel over [modellen downloaden en beheren](https://gids.llmnet.nl/modellen-downloaden-en-beheren) voor meer informatie over het controleren van modelkaarten en architectuurspecificaties.

## Overpassen herkennen en voorkomen

Overpassen (overfitting) treedt op wanneer de adapter de trainingsvoorbeelden letterlijk uit het hoofd leert in plaats van de onderliggende structuur te begrijpen. Het model verliest hierdoor zijn algemene taalvaardigheid en kan buiten de exacte trainingszinnen geen nuttige antwoorden meer formuleren.

Je herkent overpassen door tijdens de training de verlieswaarde (loss) van zowel de trainingsset als de achtergehouden validatieset te monitoren:

- Gezonde training: Zowel het trainingsverlies als het validatieverlies nemen gestaag af.

- Overpassen: Het trainingsverlies blijft dalen, maar het validatieverlies begint te stijgen. Dit is het signaal dat de adapter te specifiek wordt en de training gestopt moet worden (early stopping).

## De adapter samenvoegen of los laden

Wanneer het trainingsproces is voltooid, houd je een set adaptergewichten over. Er zijn twee manieren om deze adapter te gebruiken in je lokale omgeving:

### 1. Los laden bij uitvoering

Sommige lokale runners kunnen het ongewijzigde basismodel in het geheugen laden en de LoRA-adapter daar bij het opstarten dynamisch bovenop plaatsen. Dit heeft als voordeel dat het basismodel schoon blijft en je eenvoudig tussen verschillende adapters kunt wisselen zonder de volledige modelbestanden te dupliceren.

### 2. Samenvoegen (Merging)

Je kunt de gewichten van de adapter ook permanent herberekenen en combineren met het basismodel. Hierdoor ontstaat een nieuw, op zichzelf staand modelbestand. Dit bestand kun je vervolgens kwantiseren en converteren naar een formaat dat geschikt is voor lokale distributie. Hoe je een samengevoegd model vervolgens inricht binnen een lokale infrastructuur lees je in de handleiding over het [Ollama Modelfile aanpassen](https://gids.llmnet.nl/ollama-model-file-aanpassen).

## Toetsen tegen het basismodel

Na het opleveren van de adapter is een systematische evaluatie noodzakelijk. Test de nieuwe adapter op dezelfde vragen als het ongewijzigde basismodel om het verschil in uitvoer helder in kaart te brengen.

### Binnen het trainingsdomein

Controleer of de adapter vragen binnen het beoogde domein correct afhandelt volgens het gewenste formaat, de juiste stijl en de gevraagde parameters. Let erop dat de antwoorden niet simpelweg kopieën zijn van de trainingsdata.

### Buiten het trainingsdomein (Catastrofale vergetelheid)

Leg het model ook algemene vragen voor die niets te maken hebben met je trainingsset. Als een adapter te agressief is getraind, kan het model zijn algemene redenatievermogen of logische vaardigheden deels zijn kwijtgeraakt. Dit fenomeen staat bekend als catastrofale vergetelheid. Om evaluaties gestructureerd aan te pakken, kun je gebruikmaken van het [stappenplan voor een eigen benchmark opzetten](https://benchmark.llmnet.nl/eigen-benchmark-opzetten-stappenplan) op ons benchmark-platform.

## Opslag, versiebeheer en reproduceerbaarheid

Een finetuning-project is pas compleet als de gehele pijplijn reproduceerbaar is. Het bewaren van alleen het uiteindelijke adapterbestand is onvoldoende als je later updates wilt doorvoeren of het proces wilt herhalen op een nieuw basismodel.

Sla daarom altijd de volgende onderdelen gezamenlijk en versiebeheerd op:

- De exacte dataset: Inclusief de gebruikte opschoonscripts en de exacte opsplitsing tussen training en validatie.

- Het configuratiebestand: Alle instellingen zoals de rangorde, leersnelheid, doellagen en het aantal doorlopen.

- Basismodel-identificatie: De exacte versie, hash of commit-ID van het gebruikte basismodel. Een kleine update van het basismodel kan een adapter immers onbruikbaar maken.

- Het promptsjabloon: De exacte tekstuele opbouw en speciale tokens die zijn toegepast tijdens de training.

Door deze gegevens zorgvuldig te bewaren, zorg je ervoor dat je lokale finetuning-projecten beheersbaar, overdraagbaar en toekomstbestendig blijven.

## Lees ook

- [Finetuning vs prompting vs RAG](https://leren.llmnet.nl/finetuning-vs-prompting-vs-rag)

- [LoRA en adapters uitgelegd](https://leren.llmnet.nl/lora-en-adapters-uitgelegd)

- [Hardware voor lokale LLM's](https://gids.llmnet.nl/hardware-voor-lokale-llm)

- [Modellen downloaden en beheren](https://gids.llmnet.nl/modellen-downloaden-en-beheren)

- [Ollama Modelfile aanpassen](https://gids.llmnet.nl/ollama-model-file-aanpassen)

- [Eigen benchmark opzetten stappenplan](https://benchmark.llmnet.nl/eigen-benchmark-opzetten-stappenplan)

llmnet.nl - praktische gids voor lokale taalmodellen
