Het trainen van tokenizers en het trainen van modellen in NLP zijn fundamenteel verschillende, maar tegelijkertijd nauw met elkaar verbonden processen. Bij tokenizers worden de woordenschat en coderingsregels gecreëerd, waardoor modellen taalpatronen uit numerieke data kunnen leren.
Uitgelicht
Tokenizer-training maakt gebruik van gierige samenvoegingsalgoritmen in plaats van op gradiënten gebaseerde optimalisatie, waardoor het in wezen een voorverwerkingsstap is in plaats van neuraal leren.
De kosten voor het trainen van een model zijn vele malen hoger dan de kosten voor het trainen van een tokenizer, terwijl de kwaliteit van de tokenizer een harde bovengrens vormt voor de prestaties van het daaropvolgende model.
De beslissingen die een tokenizer neemt over de woordenschat zijn in feite onomkeerbaar zodra de modeltraining begint, waardoor er een lock-in ontstaat die blijft bestaan tijdens alle daaropvolgende fine-tuning.
Meertalige modellen kampen met ernstige vertekening in de tokenisatie, waarbij Engels en de belangrijkste Europese talen efficiënt worden getokeniseerd, terwijl veel andere talen last hebben van een inflatie van de sequentielengte.
Wat is Tokenizer-training?
Het proces van het opbouwen van een subwoordvocabulaire en het leren van coderingsregels om tekst om te zetten in numerieke tokens.
Tokenizer-training analyseert een grote tekstcorpus om de meest efficiënte subwoordeenheden te vinden voor het representeren van taal.
Byte Pair Encoding (BPE) en SentencePiece zijn de meest gebruikte algoritmen voor het trainen van tokenizers op ruwe tekst.
De resulterende woordenschatgrootte is een vaste hyperparameter, die doorgaans varieert van 32.000 tot 100.000 tokens.
De training van de tokenizer omvat geen gradiëntafdalingsmethode of neurale netwerkoptimalisatie.
Een slecht getrainde tokenizer kan de prestaties van latere modellen ernstig verslechteren door gefragmenteerde of ambigue tokenreeksen te produceren.
Wat is Modeltraining in NLP?
Het optimalisatieproces van neurale netwerken, waarbij taalmodellen patronen leren uit getokeniseerde data via op gradiënten gebaseerde methoden.
Voor modeltraining zijn vooraf getokeniseerde gegevens nodig en wordt backpropagatie gebruikt om het voorspellingsverlies over miljarden parameters te minimaliseren.
Transformer-architecturen domineren de moderne NLP-modeltraining, zoals geïntroduceerd in het artikel 'Attention Is All You Need' uit 2017.
Het trainen van grote taalmodellen zoals GPT-4 kan tientallen miljoenen dollars aan computerkracht kosten.
Bij het trainen van een model zijn hyperparameters zoals de leerfrequentie, de batchgrootte en de opwarmstappen van belang, die de convergentie aanzienlijk beïnvloeden.
Fine-tuning past vooraf getrainde modellen aan specifieke taken aan met veel minder data en rekenkracht dan training vanaf nul.
Vergelijkingstabel
Functie
Tokenizer-training
Modeltraining in NLP
Hoofddoel
Stel subwoordvocabulaire en coderingsregels op.
Leer taalpatronen en taakspecifieke representaties.
Invoergegevens
Ruwe tekstcorpus (vaak terabytes aan ongelabelde tekst)
Getokeniseerde reeksen met numerieke ID's
Optimalisatiemethode
Greedy frequency-based merging (BPE) of maximum likelihood (SentencePiece)
Gradiëntdaling met terugpropagatie
Uitvoerartefact
Woordenlijstbestand en codeer-/decodeerfuncties
Getrainde neurale netwerkgewichten en architectuurconfiguratie
Computervereisten
Relatief bescheiden; uren op één apparaat.
Enorm; duizenden GPU/TPU-uren voor grote modellen.
Omkeerbaarheid
Volledig omkeerbaar; tekst kan exact worden gereconstrueerd uit tokens.
Onomkeerbaar; de modeluitkomsten zijn voorspellingen, geen reconstructies.
Typische duur
Minuten tot uren, afhankelijk van de omvang van het corpus.
Dagen tot maanden voor funderingsmodellen
Afhankelijkheidsrelatie
Moet voltooid zijn voordat de modeltraining begint.
Dit hangt ervan af of de tokenizer al getraind en correct is ingesteld.
Gedetailleerde vergelijking
Kerndoel en -functie
De training van de tokenizer dient als de voorverwerkingsbrug tussen menselijke taal en machinaal leesbare getallen. De taak van de tokenizer is om te bepalen hoe woorden worden opgesplitst, welke reeksen speciale tokens worden en hoe onbekende woorden moeten worden behandeld. Modeltraining, daarentegen, is waar het daadwerkelijke leerproces plaatsvindt: waar een neuraal netwerk statistische patronen in taal ontdekt, betekenisrepresentaties opbouwt en het vermogen ontwikkelt om tekst te genereren of te classificeren.
Algoritmische grondbeginselen
De algoritmen achter de training van tokenizers verschillen verrassend genoeg van de algoritmen die de modeltraining aandrijven. BPE begint met individuele bytes en voegt iteratief de meest voorkomende aangrenzende paren samen totdat de gewenste woordenschatgrootte is bereikt. SentencePiece behandelt het probleem als een taalmodelleringstaak met behulp van het Expectation-Maximization-algoritme. Geen van beide maakt gebruik van neurale netwerken. Modeltraining maakt uitsluitend gebruik van differentieerbare optimalisatie, meestal Adam- of AdamW-optimizers, om door hoogdimensionale verlieslandschappen te navigeren.
Resource-intensiteit en schaalvergroting
Het verschil in rekenkracht tussen deze processen is enorm. Het trainen van een SentencePiece-tokenizer op 100 GB tekst kan een paar uur duren op standaard hardware. Het trainen van een model zoals Llama 3 op dezelfde corpus vereist enorme clusters met duizenden onderling verbonden accelerators die wekenlang draaien. Interessant is dat de training van een tokenizer vaak eenmalig wordt uitgevoerd en hergebruikt wordt voor meerdere modeltrainingen, waardoor het een relatief vaste kostenpost is in het algehele ontwikkelingsproces.
Invloed op het gedrag van het model
De keuze van een tokenizer heeft een subtiele maar krachtige invloed op wat modellen leren. Een tokenizer die 'antidisestablishmentarianism' in veel fragmenten opsplitst, dwingt het model om betekenis uit die fragmenten samen te stellen, terwijl een tokenizer die het woord intact laat, het als een atomair concept behandelt. Vooringenomenheid van de tokenizer kan zelfs de eerlijkheid beïnvloeden: talen met een lage tokenisatie-efficiëntie worden gecomprimeerd tot langere sequenties, waardoor ze in feite duurder worden voor het model om te verwerken en soms tot slechtere prestaties leiden.
Levenscyclus en iteratie
In de praktijk is het trainen van tokenizers doorgaans een eenmalige beslissing die vroeg in een project wordt genomen. Het wijzigen van tokenizers na de modeltraining betekent dat alles opnieuw vanaf nul getraind moet worden, aangezien token-ID's willekeurig zijn en model-embeddings gekoppeld zijn aan specifieke tokenposities. Modeltraining daarentegen is zeer iteratief: onderzoekers experimenteren continu met architecturen, trainingsmethoden en finetuningstrategieën. Deze asymmetrie betekent dat keuzes voor tokenizers langetermijngevolgen hebben die moeilijk ongedaan te maken zijn.
Voors en tegens
Tokenizer-training
Voordelen
+Rekenkundig gezien goedkoop om uit te voeren
+Volledig deterministisch en reproduceerbaar
+Maakt efficiënte tekstcompressie mogelijk.
+Aanpasbaar voor domeinspecifieke woordenschat
+Creëert omkeerbare tekstcodering
Gebruikt
−Een vaste woordenschat beperkt de expressiviteit.
−Moeite met het ontwikkelen van een taal
−Kan een vertekening in de codering introduceren
−Omscholing is vereist.
−Minder geschikt voor zeldzame talen.
Modeltraining in NLP
Voordelen
+Leert rijke semantische representaties
+Overdraagbaar tussen taken
+Schaalbaar op voorspelbare wijze met data en rekenkracht.
Het trainen van de tokenizer is slechts een kleine voorverwerkingsstap met weinig invloed op de uiteindelijke modelkwaliteit.
Realiteit
De kwaliteit van de tokenizer heeft een directe invloed op wat een model kan leren. Slechte tokenisatie leidt tot ambigue representaties, overdrijft de lengte van sequenties en kan het voor het model bijna onmogelijk maken om bepaalde taalkundige verschijnselen te leren. Onderzoekers hebben aangetoond dat de keuze van de tokenizer de benchmarkprestaties met meerdere procentpunten kan beïnvloeden.
Mythe
Je kunt tokenizers na het trainen van een model wisselen door simpelweg de tokens opnieuw toe te wijzen.
Realiteit
Model-embeddings zijn gekoppeld aan specifieke token-ID's op specifieke posities binnen de geleerde parameterruimte. Een andere tokenizer produceert compleet andere tokenverdelingen, waardoor de vooraf getrainde gewichten semantisch niet meer overeenkomen. De enige haalbare oplossing is een volledige hertraining vanaf nul.
Mythe
Een grotere tokenizer-vocabulaire is altijd beter voor de modelprestaties.
Realiteit
Hoewel grotere woordenschatten de lengte van sequenties verkorten, vergroten ze de omvang van de embeddingmatrix en kunnen ze de efficiëntie van het model negatief beïnvloeden. Er is een optimale hoeveelheid: een te grote woordenschat zorgt ervoor dat het model zeldzame tokens onvoldoende benut; een te kleine woordenschat leidt tot gefragmenteerde sequenties. De meeste experts vinden 32.000 tot 100.000 tokens optimaal voor meertalige modellen.
Mythe
Het trainen van het model en het trainen van de tokenizer vinden gelijktijdig plaats als onderdeel van hetzelfde end-to-end proces.
Realiteit
Dit zijn opeenvolgende, afzonderlijke fasen. De tokenizer moet volledig getraind en bevroren zijn voordat de modeltraining begint, aangezien de modelarchitectuur afhankelijk is van de vocabulairegrootte voor de dimensies van de embeddinglaag. Recent onderzoek verkent gezamenlijke optimalisatie, maar de standaardpraktijk blijft strikt sequentieel.
Mythe
Een model dat is getraind op één tokenizer kan worden verfijnd op tekst die op een andere manier is getokeniseerd.
Realiteit
Voor een optimale afstemming is identieke tokenisatie vereist. Het invoeren van anders getokeniseerde tekst zou het model token-ID's voorschotelen waarvoor het nooit embeddings heeft geleerd, of erger nog, bekende ID's met een volledig verkeerde betekenis. Daarom wordt bij modelreleases altijd precies gespecificeerd welke tokenizer gebruikt moet worden.
Mythe
Voor het trainen van een tokenizer zijn, net als bij het trainen van een model, gelabelde gegevens nodig.
Realiteit
Tokenizers worden volledig getraind op ruwe, ongelabelde tekst. Ze hebben geen annotaties, tags of taakspecifieke opmaak nodig. Dankzij dit onbegeleide karakter kunnen tokenizers worden getraind op enorme webcorpora zonder kostbare handmatige labeling.
Veelgestelde vragen
Wat gebeurt er als ik de verkeerde tokenizer gebruik met een voorgegetraind model?
Het gebruik van niet-overeenkomende tokenizers leidt tot onzin. Het model ontvangt token-ID's die verwijzen naar compleet andere subwoorden dan waarvoor de embeddings getraind zijn. In het beste geval wordt de uitvoer onzinnig; in het slechtste geval genereert het model schadelijke inhoud omdat tokens onbedoelde, aangeleerde associaties activeren. Gebruik altijd de exacte tokenizer die bij het model wordt geleverd.
Hoe lang duurt het trainen van een tokenizer doorgaans in vergelijking met het trainen van een model?
Het trainen van een tokenizer duurt meestal enkele uren, soms zelfs minuten voor kleinere datasets. Het trainen van basismodellen duurt daarentegen weken tot maanden op enorme computerclusters. Zelfs het finetunen van een groot model duurt doorgaans langer dan het trainen van een tokenizer vanaf nul. Dit verschil komt doordat tokenizers gebruikmaken van eenvoudige statistische algoritmen, terwijl modellen miljarden parameters optimaliseren via iteratieve gradiëntdaling.
Kan ik mijn eigen tokenizer trainen voor een bestaand model zoals GPT-4?
Technisch gezien wel, maar in de praktijk niet. Je kunt een aangepaste tokenizer trainen, maar je kunt deze niet gebruiken met de voorgegetrainde gewichten van GPT-4, omdat de embedding-dimensies en geleerde representaties gekoppeld zijn aan de originele tokenizer van OpenAI. Je zou een nieuw model helemaal opnieuw moeten trainen met je eigen tokenizer, wat het nut van het gebruik van het voorgegetrainde model tenietdoet.
Waarom worden sommige talen in veel meer tokens opgedeeld dan andere?
Dit komt doordat BPE en vergelijkbare algoritmen optimaliseren voor frequentie in de trainingsdata. Talen met een grote vertegenwoordiging in het trainingscorpus, met name Engels, worden efficiënt getokeniseerd. Talen met minder beschikbare bronnen worden gefragmenteerd in karakters of subwoorden, omdat hun patronen zelden de meest voorkomende combinaties waren. Deze 'tokenisatiebelasting' maakt de verwerking van sommige talen computationeel duurder.
Is SentencePiece beter dan BPE voor het trainen van tokenizers?
SentencePiece biedt voordelen voor bepaalde toepassingen. Het behandelt spaties als gewone tekens, waardoor het natuurlijker aanvoelt voor talen zonder woordgrenzen, zoals Japans of Chinees. Het ondersteunt ook meerdere coderingsalgoritmen, waaronder BPE en unigram-taalmodellen. BPE wordt nog steeds vaker gebruikt in Engelstalige modellen. De beste keuze hangt af van de talenmix en of je omkeerbare codering nodig hebt.
Hoe weet ik of mijn tokenizer problemen veroorzaakt in mijn model?
Let op ongebruikelijk hoge perplexiteit bij specifieke talen of domeinen, buitensporig lange sequenties in vergelijking met vergelijkbare teksten in veelvoorkomende talen, en slechte prestaties bij taken met zeldzame woorden of specialistische terminologie. Handmatige analyse van de tokenisatie-uitvoer – controleren hoe representatieve woorden worden opgesplitst – brengt problemen vaak snel aan het licht.
Wat is 'tokenizer explosion' en welke invloed heeft dit op modeltraining?
Een explosie van tokenizers treedt op wanneer een kleine wijziging in de invoer dramatisch verschillende tokenreeksen oplevert, meestal als gevolg van ambigue grensregels of de verwerking van voor- en achtervoegsels. Dit destabiliseert de modeltraining omdat het model inconsistente representaties van vergelijkbare invoer ziet. Goed getrainde tokenizers minimaliseren dit door consistente voorverwerking en robuuste samenvoegingsregels.
Trainen grote taalmodellen hun tokenizers ooit opnieuw?
Grote modelfamilies houden hun tokenizers doorgaans vast over verschillende versies heen voor achterwaartse compatibiliteit. Wanneer organisaties nieuwe tokenizers uitbrengen, zoals OpenAI deed tussen GPT-2 en GPT-3, gaat dit gepaard met volledig nieuwe modeltraining. De kosten en de verstoring die gepaard gaan met het wijzigen van tokenizers betekenen dat ze langzaam evolueren, vaak alleen met grote architectuurgeneraties.
Kan het trainen van tokenizers helpen bij domeinspecifieke toepassingen zoals medische of juridische NLP?
Absoluut. Domeinspecifieke tokenizers kunnen gespecialiseerde terminologie als afzonderlijke tokens opnemen in plaats van deze te fragmenteren. Dit verbetert zowel de efficiëntie als het begrip van het model. Veel biomedische NLP-projecten trainen aangepaste tokenizers op PubMed of klinische teksten om terminologie vast te leggen die algemene tokenizers onjuist zouden opsplitsen.
Waarom heeft ChatGPT soms moeite met simpele tel- of spellingstaken?
Deze beperking is deels terug te voeren op tokenisatie. De tokenizer ziet subwoordfragmenten, niet individuele tekens, dus het tellen van letters vereist dat het model informatie op tekenniveau uit token-embeddings terugleidt. Ook bij het spellen moet tokens worden ontleed in letters, iets wat het model nooit direct verwerkt. Deze taken zijn triviaal voor mensen, maar werkelijk moeilijk gezien de invoer op tokenniveau.
Oordeel
Kies voor het trainen van een tokenizer wanneer je tekst moet voorbewerken voor een nieuw taaldomein of wanneer bestaande tokenizers je specifieke vocabulaire slecht verwerken. Geef prioriteit aan modeltraining wanneer je doel is om krachtige taalsystemen te bouwen, en hergebruik bestaande tokenizers zoals die van GPT-2, BERT of Llama, tenzij je overtuigend bewijs hebt voor aangepaste tokenisatie.