Expert • Les 26
Pre-training datapipelines: hoe trainingsdata wordt gebouwd en gefilterd
“Garbage in, garbage out” geldt nergens zo sterk als bij grote taalmodellen. De datapipeline — van ruwe webcrawl tot schone tokensequenties — heeft een doorslaggevende invloed op modelkwaliteit. Moderne modellen trainen op biljoenen tokens; het bouwen en beheren van die dataset is een ingenieursdiscipline op zich.
Bronnen: van Common Crawl tot curated datasets
De meeste pre-trainingsdata begint bij Common Crawl, een openbare webcrawl van miljarden webpagina’s. Aangevuld met boeken (Books3, Gutenberg), code (GitHub), wetenschappelijke artikelen (ArXiv, PubMed), Wikipedia en discussieforums (Reddit, StackOverflow). Elke bron heeft een ander gewicht: kwalitatieve bronnen als boeken en wetenschappelijke tekst worden over-gesampled ten opzichte van hun aandeel in de ruwe data.
Filtering: kwaliteit boven kwantiteit
Ruwe webcrawldata bevat spam, advertenties, gegenereerde tekst en schadelijke content. Filterstappen omvatten: taalidentificatie (alleen gewenste talen behouden), kwaliteitsfilters op basis van perplexity (tekst die een referentiemodel verwarrend vindt wordt verwijderd), heuristische filters (verwijder pagina’s met veel niet-alfanumerieke karakters of te korte zinnen), en content-filters voor toxische of illegale inhoud. De keuze van filters heeft grote invloed op de uiteindelijke modeleigenschappen.
Deduplicatie: duplicaten schaden generalisatie
Zonder deduplicatie wordt het model getraind op dezelfde tekst tientallen of honderden keren — webpagina’s worden op veel plekken gespiegeld. Deduplicatie op exact niveau (SHA-256 hashing) en fuzzy niveau (MinHash LSH voor bijna-identieke documenten) verwijdert duplicaten. Onderzoek toont aan dat deduplicatie memorisatie vermindert, generalisatie verbetert en het risico op privacylekken verkleint.
Tokenisatie en dataformaat
Na filtering wordt tekst getokeniseerd via een BPE-tokenizer (Byte Pair Encoding) en opgeslagen als compacte integer-arrays. De volgorde van documenten in de trainingsdata doet er toe: shuffling op document- en sequentieniveau voorkomt dat het model tijdelijke patronen leert. Data wordt opgesplitst in vaste contextvensters (bijv. 4096 of 8192 tokens) en opgeslagen in geoptimaliseerde formaten zoals MMapIndexedDataset of webdataset voor snelle parallel I/O tijdens training.