Strona główna / Rozdział 1 · Jak model czyta i przewiduje
Ostatnia zmiana · 5 min czytania
Tokeny
Model nie widzi liter ani słów, tylko ciąg liczb. Każda liczba to numer tokena, czyli kawałka tekstu ze stałego słownika. W tokenach liczy się cenę, limit kontekstu i prędkość, a sposób cięcia tłumaczy kilka typowych błędów modeli.
Po ludzkuModel czyta jak ktoś, kto zna sylaby i całe popularne słowa, ale nigdy nie widział pojedynczych liter. Znane słowa łyka w całości, rzadkie składa z kawałków.
Wybierz tokenizer i przykład albo wpisz własny tekst. Zobacz, gdzie wypadają granice tokenów i ile znaków przypada na jeden token
To samo zdanie po angielsku i po polsku
Kropka · oznacza spację. Kawałek w rodzaju \xc5 to pojedynczy bajt: tokenizer rozciął jedną literę na dwa tokeny. Tiktokenizer (link w źródłach) policzy tokeny dowolnego tekstu.
Jak powstaje słownik tokenów
- Słownik buduje algorytm BPE (byte-pair encoding). Startuje od 256 możliwych bajtów i na dużym korpusie w kółko scala najczęstszą sąsiednią parę w nowy token, aż dojdzie do zadanego rozmiaru. Częste słowa stają się jednym tokenem, rzadkie składają się z kawałków.
- Przed BPE wyrażenie regularne dzieli tekst na słowa, liczby i interpunkcję, więc scalanie nie przekracza tych granic. Spacja przykleja się do następnego słowa. W tokenizerze GPT-4o „strawberry” poprzedzone spacją to jeden token, a bez spacji, np. na początku tekstu, trzy: st|raw|berry (wpisz samo słowo w widżet).
- BPE działa na bajtach UTF-8, więc każdy tekst da się zakodować i nie ma tokena „nieznane słowo”. Rzadkie połączenia rozpadają się na bajty: w GPT-4o słowo „Źdźbło” ze spacją przed nim to sześć tokenów, a spacja z „Ź” dzieli się na dwa kawałki, z których żaden nie jest całym znakiem. Tokenizery oparte na SentencePiece osiągają to samo przez byte fallback.
- Rozmiar słownika to decyzja projektowa: GPT-4 ma ok. 100 tys. tokenów, GPT-4o ok. 200 tys., Llama 3 128 tys. (100 tys. z tokenizera OpenAI plus 28 tys. dla języków innych niż angielski), Gemma 3 262 tys. Większy słownik daje krótsze sekwencje, ale większą tabelę embeddingów i warstwę wyjściową.
- Słownik ma też tokeny specjalne: koniec tekstu, znaczniki ról, wywołanie narzędzia. To osobne numery, których w dobrze zbudowanym API nie da się wpisać zwykłym tekstem. Rozmowa to jeden ciąg tokenów z takimi znacznikami (zobacz „Jak model widzi czat”).
Skutki widoczne w odpowiedziach
- Litery: w pytaniu „Ile r jest w strawberry?” model widzi słowo „strawberry” jako jeden numer zamiast dziesięciu liter, a pisownię musi pamiętać z treningu. Liczenie liter, rymy, odwracanie słów i anagramy są przez to zawodne. Modele rozumujące radzą sobie lepiej, bo najpierw wypisują słowo litera po literze i każda litera staje się osobnym tokenem.
- Liczby: GPT-4 i GPT-4o tną cyfry na grupy po trzy od lewej (1234567 to 123|456|7), Gemma 3 po jednej cyfrze. Przy grupach pozycje dziesiętne w dwóch liczbach się nie pokrywają, więc arytmetyka „w pamięci” jest zawodna. Do liczenia daje się narzędzie albo interpreter kodu.
- Prompt zakończony spacją psuje granicę tokena. W danych treningowych spacja prawie zawsze należy do następnego słowa, więc model dostaje rzadki układ i odpowiada gorzej. Nie kończ spacją promptu w trybie uzupełniania (completion) ani początku odpowiedzi podanego z góry (prefill). Dotyczy to głównie self-hostingu: w API czatu odpowiedź zaczyna się w nowej turze, a obecne modele Claude w ogóle odrzucają prefill (stan na wrzesień 2026).
Koszt i limity
- W tokenach liczy się cenę, context window,
max_tokens, limity zapytań na minutę i prędkość generowania. Polski tekst zużywa ich więcej: na całym tekście tego przewodnika polska wersja ma ok. 1,4 raza więcej tokenów niż angielska w tokenizerze GPT-4o (3,2 wobec 4,5 znaku na token) i ok. 1,6 raza więcej w Llama 3 (liczby pokazuje widżet). Ta sama treść jest więc droższa, szybciej zapełnia okno i dłużej się generuje. - Tokenizer należy do modelu. Ten sam tekst to inna liczba tokenów u różnych dostawców, a czasem między wersjami jednego modelu: według Anthropic nowy tokenizer Claude Opus 4.7 (kwiecień 2026) zamienia ten sam tekst nawet na ok. 35% więcej tokenów niż Opus 4.6, przy tej samej cenie za token. Cen za milion tokenów nie porównuj wprost. Policz tokeny na własnych danych tokenizerem modelu albo endpointem dostawcy, np.
count_tokensw API Claude.
Sprawdź się
Jak działa tokenizacja BPE i jak wpływa na koszt i zachowanie modelu?
Tokenizer tnie tekst na kawałki ze stałego słownika i zamienia je na liczby. BPE buduje słownik od 256 bajtów, scalając najczęstsze sąsiednie pary, aż dojdzie do zadanego rozmiaru, zwykle 100–260 tys. Dzięki bajtom każdy tekst da się zakodować. Częste słowa są jednym tokenem, rzadkie i nieangielskie rozpadają się na kawałki, więc polski tekst zajmuje ok. 1,3–1,6 raza więcej tokenów niż angielski, zależnie od tokenizera. Model zwykle nie widzi pojedynczych liter, a w wielu tokenizerach także cyfr, stąd błędy przy liczeniu liter i arytmetyce. Większy słownik skraca sekwencje, ale powiększa tabelę embeddingów i warstwę wyjściową.
In English
A tokeniser splits text into pieces from a fixed vocabulary and maps them to integers. BPE builds the vocabulary from 256 bytes by repeatedly merging the most frequent adjacent pair until it reaches the target size, usually 100–260k. Because it works on bytes, any text can be encoded. Common words become one token; rare and non-English words split into pieces, so Polish takes about 1.3–1.6 times as many tokens as English, depending on the tokeniser. The model usually sees neither individual letters nor, with many tokenisers, individual digits, hence mistakes in letter counting and arithmetic. A larger vocabulary shortens sequences but grows the embedding table and the output layer.
Pytania pogłębiające (4)
- Czemu nie tokenizować po znakach albo po całych słowach?
- Znaki dają kilka razy dłuższe sekwencje, a koszt attention i KV cache’u rośnie z długością. Słowa dają gigantyczny słownik, a literówka, nowe słowo czy nazwa własna nie mają numeru. BPE na bajtach łączy krótkie sekwencje z pełnym pokryciem.
- Co zmienia większy słownik?
- Krótsze sekwencje, więc tańszy kontekst i szybsze generowanie, zwłaszcza w językach innych niż angielski. Kosztem jest większa tabela embeddingów i warstwa wyjściowa (w Llama 3 70B po ok. 1 mld parametrów) oraz rzadkie tokeny, dla których w treningu było mało przykładów.
- Czy da się podmienić tokenizer w gotowym modelu?
- Praktycznie nie. Tabela embeddingów i warstwa wyjściowa są przypisane do konkretnych numerów, więc nowy słownik wymaga co najmniej dotrenowania tych warstw, a zwykle dalszego pretrainingu. Dodanie kilku tokenów specjalnych przy fine-tuningu jest możliwe, ale ich embeddingi trzeba wytrenować (zobacz „Fine-tuning i LoRA”).
- Jak oszacujesz koszt nowej funkcji przed wdrożeniem?
- Na próbce prawdziwych danych: wejście i definicje narzędzi tokenizerem danego modelu albo endpointem dostawcy do liczenia tokenów, a wyjście z pola usage kilku prawdziwych wywołań. Modele rozumujące liczą tokeny myślenia jako wyjście, nawet gdy ich nie widać, a żaden tokenizer nie policzy ich z góry (zobacz „Modele rozumujące”). Powtarzany prefiks licz po cenie cache’u (zobacz „Prompt caching”), całość razy liczba wywołań. Cen za milion tokenów u różnych dostawców nie porównuje się wprost, bo ten sam tekst to u nich różna liczba tokenów.