{"licence":{"name":"CC BY-SA 4.0","spdx":"CC-BY-SA-4.0","url":"https://creativecommons.org/licenses/by-sa/4.0/","attribution":"Atlas, a bilingual technical dictionary (https://cmaintz.github.io/tech-atlas/)"},"id":"ai/tokenizer","url":{"en":"https://cmaintz.github.io/tech-atlas/en/terms/ai/tokenizer/","da":"https://cmaintz.github.io/tech-atlas/da/terms/ai/tokenizer/"},"term":{"en":"Tokenizer","da":"Tokenizer"},"aka":{"en":[],"da":["tokeniser"]},"domain":["ai"],"cluster":"llm","layer":"model","status":"current","summary":{"en":"The part of a language model that cuts text into tokens and turns them into numbers on the way in, and back into text on the way out.","da":"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."},"body":{"formal":{"en":"A fixed program with a list of known text pieces, learned from sample text before model training, that splits any input into tokens from that list and maps each to a number; the model never sees the letters themselves.","da":"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."},"plain":{"en":"Like shorthand in a court reporter's notebook - a common word gets one quick mark, a rare word is spelled out in several, and the marks are turned back into words afterwards.","da":"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."},"inPractice":{"en":"Before sending a 60-page annual report to a language model, a developer at an accounting firm runs it through that model's tokenizer to count its tokens, so she knows whether it fits and what the request will cost.","da":"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."},"whyItMatters":{"en":"Each model family cuts text its own way, so the same document becomes a different number of tokens with each provider, and odd spellings or hidden characters are split in ways that can slip past word filters.","da":"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."}},"deepDive":{"en":"A modern tokenizer is a pipeline: Unicode normalisation (for example NFC or NFKC), pre-tokenisation that splits text into word-like chunks with a regular expression (separating letters, digits, punctuation and whitespace), the subword model itself, and post-processing that adds special tokens. Decoding reverses the mapping. Because the vocabulary and merge rules are learned from a sample corpus before pretraining and the model's embedding matrix is indexed by them, the tokenizer is frozen for the life of the model; changing it means retraining or an expensive vocabulary-adaptation procedure.\n\nThree subword algorithms dominate. Byte-pair encoding, adapted to neural machine translation by Sennrich et al. (2016), starts from characters and repeatedly merges the most frequent adjacent pair, recording the merge order; encoding replays those merges. Byte-level BPE, introduced with GPT-2, starts from the 256 byte values instead of characters, so any input - any script, emoji or binary garbage - can be encoded without an unknown token. WordPiece, used by BERT, chooses merges by likelihood gain rather than raw frequency. The Unigram language-model method (Kudo, 2018) starts from a large candidate vocabulary and prunes it, allowing probabilistic segmentation; it is commonly used through the SentencePiece library (Kudo & Richardson, 2018), which treats text as a raw character stream and marks spaces with a special symbol so no language-specific pre-tokeniser is needed.\n\nTokenisation explains a number of model weaknesses. The model never sees characters inside a token, so spelling, letter counting, reversing strings and rhyming are harder than they look. Numbers split into irregular chunks hurt arithmetic, which is why some tokenizers split digits individually or in fixed groups. Leading spaces create distinct tokens (\" Paris\" and \"Paris\" differ), so trailing whitespace in a prompt can shift outputs. Tokens that were frequent in the tokenizer's training corpus but rare in the model's training data end up with poorly trained embeddings - the \"glitch token\" phenomenon publicised in 2023 with strings such as \"SolidGoldMagikarp\", which made models behave erratically.\n\nThere are security and operational consequences. Keyword or blocklist filters that operate on words can be bypassed with homoglyphs, zero-width characters, unusual spacing or encodings that tokenise differently but that the model still understands; filters should normalise input and ideally operate on model-level classifiers rather than string matching. Special tokens must be treated as control characters: the encoder used on untrusted text should refuse to emit them, otherwise a user can forge chat-template delimiters. For cost estimation always use the tokenizer of the exact target model, since counts for the same text differ between model families and sometimes between generations of the same family.","da":"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.\n\nTre 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.\n\nTokenisering 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.\n\nDer 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."},"edges":[{"type":"requires","to":"ai/token","confidence":"high","strength":"normal"},{"type":"part-of","to":"ai/large-language-model","why":{"en":"Every language model comes with its own tokenizer, fixed before training; the model only ever sees the numbers it produces.","da":"Hver sprogmodel har sin egen tokenizer, låst før træningen; modellen ser kun de tal, den laver."},"confidence":"high","strength":"primary"},{"type":"used-with","to":"ai/transformer","confidence":"high","strength":"normal"}],"depth":1,"sources":[{"title":"Sennrich, Haddow & Birch (2016), Neural Machine Translation of Rare Words with Subword Units","tier":"reference"},{"title":"Jurafsky & Martin, Speech and Language Processing","tier":"textbook"}],"draft":true}