𝗧𝗼𝗸𝗲𝗻𝗶𝘇𝗮𝗰𝗷𝗮 𝗣𝗼𝗱 𝗠𝗮𝘀𝗸ą
Wdrażasz chatbota. Zapytania w języku angielskim zużywają 42 tokeny. Hiszpański użytkownik wysyła jedno zapytanie, które zużywa 103 tokeny. Nagle koszty Twojego API wzrastają o 40%.
Dzieje się tak, gdy traktujesz tokenizację jako niewidoczną infrastrukturę. Każdy duży model językowy (LLM) korzysta z jednego z czterech algorytmów subword. Twój wybór determinuje rozmiar słownika, wydajność językową oraz Twój miesięczny rachunek.
Tokenizacja kontroluje trzy kluczowe aspekty:
- Koszt wnioskowania (inference). API modeli LLM rozliczane są za token. Mały słownik może podzielić jedno słowo na 8 tokenów. Duży słownik poradzi sobie z tym w 3 tokeny. Przy dużej skali ta różnica oznacza realne pieniądze.
- Pokrycie słownikiem. Słabe słowniki tworzą dłuższe sekwencje. Prowadzi to do wolniejszej generacji i wyższych kosztów.
- Zachowanie modelu. Jeśli tokenizer podzieli słowo „cowboy” na ["cow", "boy"], model będzie uczył się inaczej, niż gdyby podzielił je na ["c", "owb", "oy"].
Oto jak działają cztery główne typy:
BPE (Byte Pair Encoding)
- Jak to działa: Zaczyna od znaków. Liczy często występujące sąsiadujące pary i łączy je w nowe tokeny. Powtarza ten proces, aż osiągnie docelowy rozmiar.
- Zalety: Szybki i deterministyczny.
- Użytkownicy: GPT-4o, Llama 3, Mistral.
WordPiece
- Jak to działa: Podobnie jak BPE, ale zamiast surowej częstotliwości używa prawdopodobieństwa (likelihood). Wybiera połączenia, które maksymalizują prawdopodobieństwo wystąpienia w danych treningowych.
- Zalety: Tworzy tokeny bardziej znaczące pod względem lingwistycznym.
- Użytkownicy: BERT, modele Google.
SentencePiece
- Jak to działa: Traktuje dane wejściowe jako surowe bajty Unicode. Nie wymaga kroku wstępnej tokenizacji, takiego jak dzielenie na podstawie spacji.
- Zalety: Najlepszy do obsługi wielu języków, ponieważ jest niezależny od języka (language-agnostic).
- Użytkownicy: Llama 2, Llama 3, Gemma.
Unigram
- Jak to działa: Zaczyna od ogromnego słownika i redukuje go za pomocą modelu probabilistycznego. Wybiera najlepszą ścieżkę segmentacji.
- Zalety: Bardziej spójne mapowanie tokenów na znaczenie.
- Użytkownicy: T5, XLNet.
Kluczowe wnioski dla programistów:
- Zwracaj uwagę na mieszankę językową. Modele BPE, które polegają na spacjach, mają trudności z językami takimi jak japoński czy hindi. Do produktów globalnych używaj SentencePiece.
- Blokuj wersje (Pin your versions). Przejście z
cl100k_basenao200k_basezmienia liczbę tokenów. Zawsze śledź, jakiego kodowania używasz w ewaluacjach. - Rób benchmarki poprawnie. Nie porównuj liczby tokenów między różnymi rodzinami modeli. Aby zachować dokładność, zawsze wykonuj benchmarki, korzystając z liczby znaków lub bajtów.
Zrozumienie tych narzędzi pomaga dostarczać produkty opłacalne pod względem kosztów, zamiast zaskakiwać zespoły finansowe.
Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi