Tokenizer
Også kendt som: tokeniser
Den del af en sprogmodel, der deler tekst op i tokens og laver dem om til tal på vej ind og tilbage til tekst på vej ud.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
Et fast program med en liste over kendte tekststykker, lært ud fra eksempeltekst før modeltræningen, som deler enhver tekst op i tokens fra listen og knytter hvert til et tal; modellen ser aldrig selve bogstaverne.
Forklaret enkelt
Som stenografi i en protokolførers notesbog - et almindeligt ord får ét hurtigt tegn, et sjældent ord skrives med flere, og tegnene laves om til ord igen bagefter.
I praksis
Før en udvikler i et revisionsfirma sender en årsrapport på 60 sider til en sprogmodel, kører hun den gennem modellens tokenizer for at tælle tokens, så hun ved, om den kan være der, og hvad kaldet vil koste.
Hvorfor det betyder noget
Hver modelfamilie deler tekst op på sin egen måde, så det samme dokument bliver til et forskelligt antal tokens hos hver udbyder, og mærkelige skrivemåder eller skjulte tegn deles op på måder, der kan snyde ordfiltre.
Teknisk uddybning
En moderne tokenizer er en pipeline: Unicode-normalisering (fx NFC eller NFKC), prætokenisering, der deler teksten i ordlignende stykker med et regulært udtryk (adskiller bogstaver, cifre, tegnsætning og mellemrum), selve subword-modellen og efterbehandling, der tilføjer særlige tokens. Afkodning vender afbildningen om. Da ordforråd og fletteregler læres fra et eksempelkorpus før fortræningen, og modellens embedding-matrix er indekseret efter dem, er tokenizeren låst i hele modellens levetid; at ændre den kræver gentræning eller en dyr procedure for tilpasning af ordforrådet.
Tre subword-algoritmer dominerer. Byte-pair encoding, tilpasset neural maskinoversættelse af Sennrich m.fl. (2016), starter fra tegn og fletter gentagne gange det hyppigste nabopar og gemmer rækkefølgen af fletninger; kodning afspiller dem igen. Byte-level BPE, introduceret med GPT-2, starter fra de 256 byteværdier i stedet for tegn, så ethvert input - ethvert skriftsystem, emoji eller binært affald - kan kodes uden et ukendt-token. WordPiece, som BERT bruger, vælger fletninger efter gevinst i likelihood frem for rå hyppighed. Unigram-sprogmodelmetoden (Kudo, 2018) starter fra et stort ordforråd af kandidater og beskærer det, hvilket tillader probabilistisk opdeling; den bruges typisk via biblioteket SentencePiece (Kudo & Richardson, 2018), der behandler tekst som en rå tegnstrøm og markerer mellemrum med et særligt symbol, så der ikke kræves en sprogspecifik prætokenisering.
Tokenisering forklarer en række af modellernes svagheder. Modellen ser aldrig bogstaverne inde i et token, så stavning, optælling af bogstaver, at vende strenge og at finde rim er sværere, end det ser ud. Tal, der deles i uregelmæssige stykker, skader regning, og derfor deler nogle tokenizere cifre enkeltvis eller i faste grupper. Foranstillede mellemrum giver forskellige tokens (" Paris" og "Paris" er forskellige), så et mellemrum til sidst i en prompt kan flytte output. Tokens, der var hyppige i tokenizerens træningskorpus, men sjældne i modellens træningsdata, får dårligt trænede embeddings - fænomenet "glitch tokens", kendt fra 2023 med strenge som "SolidGoldMagikarp", der fik modeller til at opføre sig uberegneligt.
Der er konsekvenser for sikkerhed og drift. Nøgleords- eller bloklistefiltre, der arbejder på ord, kan omgås med homoglyffer, nulbredde-tegn, usædvanlig afstand eller kodninger, der tokeniseres anderledes, men som modellen stadig forstår; filtre bør normalisere input og helst bygge på klassifikatorer på modelniveau frem for strengmatchning. Særlige tokens skal behandles som kontroltegn: Den encoder, der bruges på upålidelig tekst, skal nægte at udsende dem, ellers kan en bruger forfalske chatskabelonens skilletegn. Til prisoverslag skal man altid bruge tokenizeren for den præcise målmodel, for antallet for den samme tekst varierer mellem modelfamilier og nogle gange mellem generationer i samme familie.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
- Token
- →Tokenizer
Relationer
- Del af
- Stor sprogmodel (LLM)
- Forudsætter
- Token
- Bruges sammen med
- TransformerEmbeddingFill-in-the-middle (FIM)
Kilder og videre læsning
Opslagsværker
- Sennrich, Haddow & Birch (2016), Neural Machine Translation of Rare Words with Subword Units
Lærebøger
- Jurafsky & Martin, Speech and Language Processing
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Test dig selv
Indlæser…