Tokenizacja

Proces dzielenia tekstu na mniejsze jednostki (tokeny) przed przekazaniem go do modelu. To pierwszy krok przygotowania danych tekstowych.

Tokenizacja to proces dzielenia tekstu na mniejsze jednostki, zwane tokenami, które model językowy potrafi przetworzyć. Token nie jest tym samym co słowo ani litera — to fragment gdzieś pomiędzy: może być całym słowem, jego kawałkiem, znakiem interpunkcyjnym, a nawet spacją. Modele takie jak GPT czy Claude nie widzą surowego tekstu. Widzą ciąg liczb, a tokenizacja to właśnie ten pierwszy, niewidoczny krok, który zamienia „Cześć, świecie” na zestaw identyfikatorów, które sieć neuronowa rozumie.

Działa to tak: tokenizer ma z góry ustalony słownik (vocabulary) — listę wszystkich tokenów, jakie zna, często liczącą od kilkudziesięciu do kilkuset tysięcy pozycji. Każdemu tokenowi przypisany jest numer (token ID). Tekst wejściowy jest cięty na kawałki pasujące do tego słownika, a następnie zamieniany na listę ID. Najpopularniejsze podejście to BPE (Byte Pair Encoding) oraz jego warianty jak WordPiece czy SentencePiece — łączą one częste sekwencje znaków w pojedyncze tokeny, więc popularne słowa zajmują jeden token, a rzadkie czy egzotyczne rozpadają się na kilka.

Dlaczego to dla Ciebie istotne? Bo na tokenach liczone są limity kontekstu i koszty API. Kiedy model ma „128k context window”, chodzi o tokeny, nie znaki. Możesz to sprawdzić sam — OpenAI udostępnia bibliotekę tiktoken:

  1. pip install tiktoken
  2. enc = tiktoken.get_encoding("cl100k_base")
  3. enc.encode("Tokenizacja to ważny krok") zwróci listę ID, a len(...) powie, ile tokenów zjadłeś.

Szybka ciekawostka, która zaskakuje juniorów: język polski jest „droższy” niż angielski. Słowa z ogonkami i odmianą często rozbijają się na więcej tokenów niż ich angielskie odpowiedniki, więc ten sam prompt po polsku potrafi kosztować zauważalnie więcej. To nie błąd — tak działają słowniki trenowane głównie na tekście angielskim.

Najczęstszy mit: „jeden token to jedno słowo”. Nieprawda. Z grubsza dla angielskiego przyjmuje się około 4 znaków na token, ale to tylko reguła kciuka — nie licz na nią przy precyzyjnym budżetowaniu. Drugi błąd to liczenie długości promptu znakami albo słowami w kodzie, zamiast realnie tokenizować. Pamiętaj też, że różne modele mają różne tokenizery — token ID z GPT-4 nie znaczy nic dla innego modelu.

Pojęcia powiązane: embedding (token ID zamieniony na wektor), context window, BPE, prompt engineering, oraz detokenizacja, czyli droga powrotna z tokenów do czytelnego tekstu.