OpenAI
Ta strona została przetłumaczona maszynowo. Wyświetl oryginalny artykuł w języku angielskim.

Czym są tokeny i jak je liczyć?

Zaktualizowano: 16 days ago

Czym są tokeny?

Tokeny to podstawowe elementy tekstu przetwarzane przez modele OpenAI. Mogą być tak krótkie jak pojedynczy znak lub tak długie jak całe słowo, zależnie od języka i kontekstu. Spacje, znaki interpunkcyjne i części słów również wpływają na liczbę tokenów. W ten sposób API wewnętrznie segmentuje tekst przed wygenerowaniem odpowiedzi.

Przydatne orientacyjne zasady dla języka angielskiego:

  • 1 token ≈ 4 znaki

  • 1 token ≈ ¾ słowa

  • 100 tokenów ≈ 75 słów

  • 1–2 zdania ≈ 30 tokenów

  • 1 akapit ≈ 100 tokenów

  • ~1500 słów ≈ 2048 tokenów

Tokenizacja może różnić się w zależności od języka. Na przykład „Cómo estás” (po hiszpańsku „Jak się masz”) zawiera 5 tokenów na 10 znaków. Tekst inny niż angielski często daje wyższy stosunek liczby tokenów do liczby znaków, co może wpływać na koszty i limity.

Przykłady

Oto kilka przykładów tekstu z rzeczywistego użycia wraz z przybliżoną liczbą tokenów:

  • Cytat Wayne’a Gretzky’ego „Nie trafiasz 100% strzałów, których nie oddajesz” = 11 tokenów

  • Karta OpenAI = 476 tokenów

  • Amerykańska Deklaracja Niepodległości = 1695 tokenów

Jak obliczana jest liczba tokenów

Gdy wysyłasz tekst do API:

  1. Tekst jest dzielony na tokeny.

  2. model przetwarza te tokeny.

  3. Odpowiedź jest generowana jako sekwencja tokenów, a następnie zamieniana z powrotem na tekst.

Użycie tokenów jest śledzone w kilku kategoriach:

  • Tokeny wejściowe – tokeny w Twoim żądaniu.

  • Tokeny wyjściowe – tokeny wygenerowane w odpowiedzi.

  • Tokeny z pamięci podręcznej – ponownie użyte tokeny z historii rozmowy (często rozliczane po obniżonej stawce).

  • Tokeny rozumowania – w niektórych zaawansowanych modelach dodatkowe „kroki myślenia” są uwzględniane wewnętrznie przed wygenerowaniem końcowego wyniku.

Te liczby pojawiają się w metadanych odpowiedzi API i służą do rozliczeń oraz śledzenia użycia.

Aby lepiej poznać tokenizację, możesz skorzystać z naszego interaktywnego narzędzia Tokenizer, które pozwala obliczyć liczbę tokenów i zobaczyć, jak tekst jest dzielony na tokeny.

Alternatywnie, jeśli chcesz tokenizować tekst programowo, użyj Tiktoken jako szybkiego tokenizera BPE używanego specjalnie dla modeli OpenAI.

Limity tokenów

Każdy model ma maksymalny łączny limit tokenów (wejście + wyjście). Obecne modele o dużej pojemności obsługują w kontekście nawet setki tysięcy tokenów, choć praktyczne limity mogą się różnić w zależności od wersji modelu i poziomu użytkowania.

Jeśli przekroczysz limit, możesz:

  • Skrócić lub przeformułować polecenia.

  • Podzielić duży tekst na mniejsze fragmenty.

  • Streścić lub wstępnie przetworzyć dane wejściowe przed ich wysłaniem.

Ceny tokenów

Korzystanie z API jest rozliczane za token, a cena zależy od modelu i od tego, czy tokeny są wejściowe, wyjściowe czy z pamięci podręcznej. Aktualne stawki znajdziesz na stronie z cennikiem OpenAI. Niektóre modele rozumujące mogą wewnętrznie używać większej liczby tokenów, ale mają na celu poprawę wydajności przez zmniejszenie liczby tokenów potrzebnych do ukończenia zadania.

Poznawanie tokenów

API traktuje słowa zgodnie z ich kontekstem w danych korpusu. Modele pobierają polecenie, przekształcają dane wejściowe w listę tokenów, przetwarzają polecenie i zamieniają przewidziane tokeny z powrotem na słowa, które widzimy w odpowiedzi.

To, co może wyglądać dla nas jak dwa identyczne słowa, może zostać wygenerowane jako różne tokeny w zależności od tego, jak są zbudowane w tekście. Zobacz, jak API generuje wartości tokenów dla słowa „red” na podstawie jego kontekstu w tekście:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

W pierwszym przykładzie powyżej token „2266” dla „ red” zawiera końcową spację (uwaga: to przykładowe identyfikatory tokenów użyte do celów demonstracyjnych).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

Token „2296” dla „ Red” (z początkową spacją i zaczynający się wielką literą) różni się od tokenu „2266” dla „ red” pisanego małą literą.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

Gdy „Red” jest użyte na początku zdania, wygenerowany token nie zawiera początkowej spacji. Token „7738” różni się od dwóch poprzednich przykładów tego słowa.

Obserwacje:

Im bardziej prawdopodobny/częstszy jest token, tym niższy numer tokenu jest mu przypisany:

  • Token wygenerowany dla kropki jest taki sam („13”) we wszystkich 3 zdaniach. Dzieje się tak dlatego, że w ujęciu kontekstowym kropka jest używana dość podobnie w całych danych korpusu.

  • Token wygenerowany dla „red” różni się w zależności od jego położenia w zdaniu:

    • Mała litera w środku zdania: „ red” - (token: „2266”)

    • Wielka litera w środku zdania: „ Red” - (token: „2297”)

    • Wielka litera na początku zdania: „Red” - (token: „7738”)

Czy ten artykuł był pomocny?