Strona główna / Rozdział 1 · Jak model czyta i przewiduje
    Ostatnia zmiana · 5 min czytania

    Użyj z AI

    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

    Skutki widoczne w odpowiedziach

    Koszt i limity

    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.

    Źródła

    Zgłoś błąd · Zaproponuj poprawkę