Darmowy Licznik Tokenów dla GPT-4, ChatGPT i Modeli AI
Dokładny licznik tokenów wykorzystujący bibliotekę tiktoken OpenAI. Liczenie tokenów dla modeli GPT-4, ChatGPT i GPT-3. Zarządzaj kosztami API i optymalizuj komunikaty AI natychmiastowo.
Licznik Tokenów
Nieprawidłowe dane wejściowe
Dokumentacja
Czym jest licznik tokenów?
Licznik tokenów mierzy, na ile tokenów rozpada się fragment tekstu, gdy odczytuje go model językowy AI. Tokeny to małe fragmenty tekstu — całe słowa, części słów lub znaki interpunkcyjne — które modele takie jak GPT-4 i ChatGPT przetwarzają zamiast surowych liter. To narzędzie korzysta z tiktoken, biblioteki tokenizera o otwartym kodzie źródłowym opublikowanej przez OpenAI, dlatego wyniki odpowiadają temu, co zwróciłyby własne modele i API OpenAI.
Jak działa tokenizacja
Tokenizer nie po prostu liczy słowa. Przepuszcza tekst przez algorytm zwany kodowaniem par bajtów (BPE). Algorytm zaczyna od pojedynczych bajtów tekstu i wielokrotnie łączy najczęściej występujące sąsiednie pary na podstawie wzorców poznanych podczas trenowania na dużym zbiorze tekstów. W wyniku powstaje stały słownik obejmujący dziesiątki tysięcy często występujących fragmentów: całe krótkie słowa, częste fragmenty słów oraz pojedyncze znaki reprezentujące rzadkie elementy.
Z tego powodu jedno angielskie słowo często staje się jednym tokenem, ale dłuższe lub nietypowe słowa mogą rozpadać się na dwa lub więcej tokenów. Spacje są zwykle dołączane na początku następnego tokenu, a nie liczone osobno, natomiast znaki interpunkcyjne zazwyczaj są osobnymi tokenami.
Kodowania obsługiwane przez to narzędzie
Tiktoken oferuje kilka kodowań, z których każde jest powiązane z rodziną modeli OpenAI. To narzędzie obsługuje trzy:
| Kodowanie | Używane przez | Przybliżony rozmiar słownika |
|---|---|---|
cl100k_base | Modele z rodziny GPT-3,5 i GPT-4 oraz ChatGPT | około 100 000 tokenów |
p50k_base | Nowsze modele GPT-3 | około 50 000 tokenów |
r50k_base | Starsze modele GPT-3 i GPT-2 | około 50 000 tokenów |
Kodowanie cl100k_base jest wybierane domyślnie, ponieważ obejmuje rodzinę modeli używaną obecnie przez większość osób. Ten sam tekst może dać inną liczbę tokenów przy każdym kodowaniu, ponieważ każde z nich trenowano na innym tekście i każde inaczej łączy znaki.
Jak obliczyć liczbę tokenów
Nie istnieje prosty wzór arytmetyczny pozwalający przeliczyć liczbę znaków lub słów na liczbę tokenów, ponieważ sposób łączenia w BPE zależy od konkretnego tekstu i wytrenowanego słownika. Jedyną dokładną metodą jest przepuszczenie tekstu przez tokenizer:
- Wybierz kodowanie odpowiadające modelowi docelowemu.
- Przekaż tekst do tokenizera tego kodowania.
- Policz otrzymaną listę identyfikatorów tokenów. Długość tej listy to liczba tokenów.
Jako przybliżenie dla tekstu angielskiego można przyjąć, że jeden token odpowiada około czterem znakom lub mniej więcej trzem czwartym słowa. To tylko wskazówka. Liczby, kod, tekst nieangielski i nietypowa pisownia mogą znacznie zmienić ten stosunek.
Przykład rozwiązany
Rozważmy zdanie:
„Tokenization splits text into pieces.”
W kodowaniu cl100k_base tiktoken dzieli je na 7 tokenów:
Token, ization, splits, text, into, pieces, .
Zwróć uwagę, że samo słowo „Tokenization” rozpada się na dwa tokeny: „Token” i „ization”, podczas gdy każde pozostałe słowo pozostaje w całości. Końcowa kropka jest osobnym tokenem. Dlatego zdanie o długości 37 znaków i zawierające 5 słów daje 7 tokenów, a nie 6.
Dlaczego liczba tokenów ma znaczenie
Dostawcy usług AI pobierają opłaty za korzystanie z API na podstawie liczby tokenów, uwzględniając zarówno tekst wysłany, jak i tekst wygenerowany w odpowiedzi, dlatego liczba tokenów pozwala przewidzieć koszt przed wysłaniem żądania. Każdy model ma także maksymalną długość kontekstu, czyli limit łącznej liczby tokenów, jakie może zawierać pojedyncze żądanie wraz z odpowiedzią. Limit ten różni się w zależności od modelu i zmienia się wraz z udostępnianiem przez dostawców nowych wersji, dlatego najlepiej sprawdzać go w aktualnej dokumentacji używanego modelu, zamiast polegać na pamięci.
Często zadawane pytania
Czym jest token w modelach językowych AI? Token to fragment tekstu, który model językowy odczytuje jako jedną jednostkę. Może to być całe krótkie słowo, część dłuższego słowa, znak interpunkcyjny lub spacja dołączona do następnego słowa.
Dlaczego różne kodowania dają różną liczbę tokenów dla tego samego tekstu? Każde kodowanie trenowano na własnej próbce tekstu i zbudowano dla niego osobny słownik często występujących fragmentów. Słowo wystarczająco częste, aby być pojedynczym tokenem w jednym słowniku, może nie występować w tej postaci w innym, więc zostanie podzielone inaczej.
Czy znaki interpunkcyjne są liczone jako tokeny? Tak. Znaki interpunkcyjne są zwykle liczone jako osobne tokeny, choć czasami są łączone z sąsiednim znakiem, zależnie od tego, jak często takie połączenie występowało podczas trenowania tokenizera.
Czy token jest tym samym co słowo? Nie. Krótkie, często występujące słowa zwykle odpowiadają po jednemu tokenowi. Dłuższe lub rzadsze słowa, a także większość słów spoza języka angielskiego, często rozpadają się na dwa lub więcej tokenów.
Jak dokładne jest to narzędzie? Liczy tokeny za pomocą własnej biblioteki tiktoken firmy OpenAI, stosując tę samą logikę kodowania, której OpenAI używa wewnętrznie, dlatego wynik odpowiada temu, co zwróciłoby wywołanie API OpenAI dla tego samego tekstu i kodowania.
Czy to narzędzie może liczyć tokeny dla modeli innych niż modele OpenAI? Korzysta ono z kodowań tiktoken, które zostały opracowane dla modeli OpenAI. Inni dostawcy, na przykład Anthropic lub Google, używają własnych tokenizerów, które mogą dawać inną liczbę tokenów dla tego samego tekstu.
Piśmiennictwo
- OpenAI. "tiktoken." GitHub, https://github.com/openai/tiktoken.
- Sennrich, Rico i in. "Neural Machine Translation of Rare Words with Subword Units." arXiv:1508,07909, 2016, http://arxiv.org/abs/1508.07909.
- Brown, Tom B. i in. "Language Models are Few-Shot Learners." arXiv:2005,14165, 2020, http://arxiv.org/abs/2005.14165.