Robocikowo>ROBOCIKOWO
Inne

Tokenization

1994AktywnyOpublikowano: 17 maja 2026Aktualizacja: 17 maja 2026Opublikowany
Proces dekompozycji surowego tekstu (lub innych danych wejściowych) na skończony zbiór dyskretnych jednostek — tokenów — które stanowią faktyczne wejście modeli językowych i atom kosztu obliczeniowego oraz finansowego LLM.
Kluczowa innowacja
Sprowadzenie nieskończonej przestrzeni ciągów znaków do skończonego, statystycznie efektywnego słownika podjednostek (subwords), na których operuje cała pozostała architektura modelu językowego.
Kategoria
Inne
Poziom abstrakcji
Building block
Poziom operacji
DaneElement architekturyTreningInferencja
Zastosowania
Trening i inferencja wszystkich nowoczesnych LLM (GPT, Claude, Gemini, Llama, Mistral, DeepSeek).Estymacja kosztu API i rozmiaru promptu przed wysłaniem zapytania (tiktoken dla OpenAI, anthropic SDK dla Claude).Tokenizacja kodu w modelach Code (Codex, Claude Code, GPT-5.3-Codex) z osobnymi słownikami zoptymalizowanymi dla tokenów programistycznych (whitespace, słowa kluczowe).Tokenizacja multimodalna — obrazy są dzielone na patches/tokeny wizualne (ViT, image tokens w GPT-4V, Gemini), dźwięk na tokeny audio (Whisper, AudioLM).Estymacja długości kontekstu i window-fitting przy budowie pipeline RAG.

Jak działa

1. Trening tokenizera (offline, jednorazowy): algorytm BPE/WordPiece/Unigram analizuje korpus referencyjny i buduje słownik podjednostek. BPE iteracyjnie łączy najczęstsze pary sąsiadujących symboli; WordPiece łączy te, które maksymalizują prawdopodobieństwo korpusu pod modelem unigramowym; Unigram zaczyna od dużego słownika i iteracyjnie usuwa tokeny o najmniejszym wpływie na likelihood.

2. Encoding (inferencja tokenizera): wejściowy tekst jest dzielony na sekwencję tokenów ze słownika, najczęściej greedy longest-match (WordPiece), priority-queue merges (BPE) lub Viterbi (Unigram). Wynik to lista identyfikatorów integer.

3. Decoding: odwrotny proces — identyfikatory są mapowane z powrotem na ciągi znaków. Detokenizacja musi być bezstratna, co wymaga specjalnych konwencji (np. prefiks „##" w WordPiece, „▁" w SentencePiece, prefix-space encoding w GPT).

4. Token budget: model ma stałe okno kontekstu (context window) liczone w tokenach. API komercyjne (OpenAI, Anthropic, Google) rozliczają zużycie w tokenach. Liczba tokenów per znak waha się typowo od 0.25 (proste angielskie zdania) do >2 (pisma niełacińskie, kod, struktury danych).

Rozwiązany problem

Modele neuronowe wymagają wejścia o stałej, skończonej dziedzinie reprezentowanej jako wektory. Tekst naturalny ma jednak nieograniczoną przestrzeń ciągów znaków Unicode. Tokenizacja rozwiązuje ten problem: kompresuje tę nieskończoność do skończonego słownika (typowo 32k–200k pozycji) w sposób minimalizujący długość sekwencji dla typowego korpusu treningowego, jednocześnie pokrywając wszystkie możliwe wejścia. Podejścia naiwne — tokenizacja słowna i znakowa — zawodzą w ekstremach: słowna tworzy gigantyczny słownik, nie radzi sobie z OOV (out-of-vocabulary) i morfologią, znakowa daje bardzo długie sekwencje, drogie obliczeniowo. Tokenizacja podsłowna (subword) jest kompromisem, który stał się standardem branżowym.

Kluczowe mechanizmy

Trening słownika offline na korpusie referencyjnym.
Iteracyjne łączenie podjednostek (BPE merges, WordPiece scoring, Unigram pruning).
Encoding tekstu do sekwencji integer ID greedy lub Viterbi.
Lossless decoding z konwencjami prefiksów (##, ▁).
Specjalne tokeny kontrolne dla role-based chat i tool calling.

Mocne strony i ograniczenia

Mocne strony
Skończony słownik o kontrolowanym rozmiarze (32k–200k) niezależny od długości korpusu treningowego.
Brak <UNK> przy Byte-level BPE — pokrycie pełnego Unicode.
Efektywne kompromis między tokenizacją słowną a znakową: krótsze sekwencje od char-level, mniejszy słownik od word-level.
Dobrze wystudiowane biblioteki (tiktoken, SentencePiece, HF tokenizers) — battle-tested na produkcji.
Ograniczenia
Słownik zamrożony po treningu — nie można łatwo dodać domeny.
Stronniczość językowa: tokenizery trenowane na danych angielskich karzą języki non-English wyższym kosztem.
Patologie liczbowe i znakowe (liczenie liter, arytmetyka).
Glitch tokens jako wektor ataków typu prompt injection.
Nie istnieje uniwersalny tokenizer — każdy model ma swój własny, niekompatybilny słownik.

Komponenty

Vocabulary (słownik)
Algorytm uczenia słownika
Algorytm enkodowania
Tokeny specjalne
Pre-tokenizer i normalizacja

Implementacja

Pułapki implementacyjne
Over-segmentacja języków non-EnglishWysoka

Tokenizery trenowane głównie na korpusach angielskich produkują 2–3× więcej tokenów dla polskiego, japońskiego, arabskiego czy hindi — co podnosi koszt API i zmniejsza efektywne okno kontekstu dla tych języków.

Patologiczne tokeny liczboweWysoka

BPE dzieli liczby na fragmenty zależne od częstotliwości w korpusie (np. "1234" jako "123" + "4" lub "12" + "34"), co utrudnia naukę arytmetyki. Llama 3 i nowsze rozwiązują to wymuszając digit-splitting.

Glitch tokensŚrednia

Tokeny obecne w słowniku, ale praktycznie nieobecne w danych treningowych (np. " SolidGoldMagikarp" w GPT-3) wywołują deterministyczne, niezrozumiałe odpowiedzi modelu — surface area do prompt injection i jailbreakingu.

Liczenie liter w słowachNiska

Pytania w stylu „ile jest liter R w słowie strawberry" zawodzą, bo model widzi „straw" + „berry" jako dwa tokeny — nie ma dostępu do reprezentacji znakowej. Klasyczny benchmark zawodności tokenizacji.

Tokenizer mismatch przy fine-tuninguWysoka

Użycie innego tokenizera niż użyty przy pretrainingu (np. dodanie nowych tokenów specjalnych bez resize embeddingów) prowadzi do silent corruption modelu — output wygląda sensownie, ale jakość drastycznie spada.

Ewolucja

Oryginalny paper · 2016 · ACL 2016 · Rico Sennrich
Neural Machine Translation of Rare Words with Subword Units
Rico Sennrich, Barry Haddow, Alexandra Birch
1994
BPE jako algorytm kompresji danych (Philip Gage, "A New Algorithm for Data Compression", The C Users Journal).
2012
WordPiece — Schuster & Nakajima (Google), wprowadzony dla japońskiego i koreańskiego speech recognition.
2016
Sennrich, Haddow & Birch adaptują BPE do NMT — narodziny subword tokenization w NLP.
2018
SentencePiece (Kudo & Richardson, Google) — implementacja niezależna od języka, traktująca spację jako zwykły znak. Unigram language model jako alternatywa dla BPE (Kudo).
2018
BERT (Devlin et al., Google) używa WordPiece — popularyzuje subword tokenization w mainstreamie NLP.
2019
GPT-2 (Radford et al., OpenAI) wprowadza Byte-level BPE (BBPE) — eliminuje token <UNK> i obsługuje dowolny tekst Unicode.
2020
tiktoken (OpenAI) — szybka biblioteka Rust do tokenizacji modeli GPT-3/3.5/4, standard de facto przy estymacji kosztów.
2023
Llama 2 (Meta) używa SentencePiece BPE z 32k tokenów; krytyka over-segmentacji języków nieanglojęzycznych nasila się.
2024
Llama 3 zwiększa słownik do 128k tokenów (4× względem Llama 2), poprawiając efektywność i pokrycie języków non-English.
2024
Badania nad „tokenizer-free" modelami (ByT5, Charformer, MambaByte) jako alternatywą dla BPE — operacja bezpośrednio na bajtach.
2025
GPT-4o, Claude 3.5, Gemini 2.0 — tokenizery multimodalne łączące tekst, obraz, audio w jednej przestrzeni dyskretnej.

Paradygmat wykonania

Tryb główny
dense
Wzorzec aktywacji
all_paths_active

Równoległość

Poziom równoległości
fully_parallel
Zakres
traininginference
Ograniczenia
!Encoding pojedynczego dokumentu w BPE/WordPiece jest sekwencyjny w obrębie dokumentu (zależność od poprzednich merges), ale tokenizacja batcha dokumentów jest trivialnie równoległa — to operacja pre-processing CPU-bound bez wpływu na grafu obliczeniowy modelu.

Wymagania sprzętowe

Podstawowe
Dobry fit