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

Czym są tokeny i jak je liczyć?

Zaktualizowano: 7 days ago

Czym są tokeny?

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

Przydatne zasady orientacyjne 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 różni się w zależności od modelu i kodowania. Użyj narzędzia Tokenizer lub tiktoken.encoding_for_model(model), aby uzyskać dokładną liczbę dla docelowego modelu.

Przykłady

Oto kilka rzeczywistych próbek tekstu wraz z ich 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

  • Deklaracja niepodległości Stanów Zjednoczonych = 1695 tokenów

Jak oblicza się liczbę 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 konwertowana z powrotem na tekst.

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

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

  • Tokeny wyjściowe – tokeny wygenerowane w odpowiedzi.

  • Tokeny z pamięci podręcznej – ponownie użyte tokeny z historii rozmowy (często rozliczane według niższej stawki).

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

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

Aby dokładniej poznać tokenizację, możesz użyć 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 — szybkiego tokenizera BPE stosowanego specjalnie w modelach 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 Twojego poziomu użycia.

Jeśli przekroczysz limit, możesz:

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

  • Podzielić duży tekst na mniejsze fragmenty.

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

Ceny tokenów

Użycie API jest wyceniane za token, a stawki zależą od modelu oraz 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ą używać wewnętrznie większej liczby tokenów, ale mają na celu poprawę efektywności przez zmniejszenie liczby tokenów potrzebnych do ukończenia zadania.

Eksplorowanie tokenów

API traktuje słowa zgodnie z ich kontekstem w danych korpusu. Modele przyjmują polecenie, konwertują dane wejściowe na listę tokenów, przetwarzają polecenie i konwertują przewidywane tokeny z powrotem na słowa widoczne w odpowiedzi.

To, co dla nas może wyglądać jak dwa identyczne słowa, może zostać wygenerowane jako różne tokeny w zależności od struktury tych słów 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 spację na końcu (uwaga: są to przykładowe identyfikatory tokenów 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” (ze spacją na początku i 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 spacji na początku. Token „7738” różni się od dwóch poprzednich przykładów tego słowa.

Obserwacje:

Im bardziej prawdopodobny/częsty 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, ponieważ kontekstowo kropka jest używana dość podobnie w całym korpusie danych.

  • 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?