Gå til indhold
atlas

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.

  1. Token
  2. →Tokenizer

Relationer

Forudsætter
Token

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…

Atlas er i beta.