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

Czym są tokeny i jak je liczyć?

Zaktualizowano: 4 days ago

Czym są tokeny?

Tokeny to podstawowe jednostki tekstu przetwarzane przez modele OpenAI. W zależności od języka i kontekstu mogą obejmować pojedynczy znak lub całe słowo. Spacje, znaki interpunkcyjne i fragmenty słów również wpływają na liczbę tokenów. W ten sposób interfejs API wewnętrznie dzieli tekst przed wygenerowaniem odpowiedzi.

Przydatne wartości 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 zależy od modelu i kodowania. Aby uzyskać dokładną liczbę dla wybranego modelu, użyj narzędzia Tokenizer lub funkcji tiktoken.encoding_for_model(model).

Przykłady

Oto rzeczywiste próbki tekstu 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

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

Jak obliczana jest liczba tokenów

Po wysłaniu tekstu do interfejsu API:

  1. Tekst jest dzielony na tokeny.

  2. Model przetwarza te tokeny.

  3. Odpowiedź jest generowana jako sekwencja tokenów, a następnie przekształcana z powrotem w tekst.

Użycie tokenów jest rejestrowane w kilku kategoriach:

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

  • Tokeny wyjściowe – tokeny wygenerowane w odpowiedzi.

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

  • Tokeny rozumowania – w niektórych zaawansowanych modelach przed utworzeniem końcowego wyniku wewnętrznie wykonywane są dodatkowe „etapy myślenia”.

Te wartości są widoczne w metadanych odpowiedzi interfejsu API i służą do rozliczania oraz monitorowania użycia.

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

Jeśli natomiast chcesz tokenizować tekst programowo, użyj biblioteki Tiktoken — szybkiego tokenizatora BPE stworzonego specjalnie z myślą o modelach OpenAI.

Limity tokenów

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

Jeśli przekroczysz limit, możesz:

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

  • Podzielić długi tekst na mniejsze fragmenty.

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

Ceny tokenów

Opłaty za korzystanie z interfejsu API są naliczane za token, a stawka zależy od modelu oraz od tego, czy tokeny są wejściowe, wyjściowe czy pochodzą z pamięci podręcznej. Aktualne stawki znajdziesz na stronie z cennikiem OpenAI. Niektóre modele rozumowania mogą wewnętrznie używać większej liczby tokenów, ale dążą do poprawy wydajności przez ograniczenie liczby tokenów potrzebnych do wykonania zadania.

Tokeny nie są ustandaryzowane między modelami AI ani dostawcami. Różne modele mogą przetwarzać lub generować ten sam tekst przy użyciu różnej liczby tokenów, dlatego niższa deklarowana cena za milion tokenów nie musi oznaczać niższego kosztu całkowitego.

Widoczna długość odpowiedzi również nie pokazuje pełnego obrazu. Niektóre modele przed udzieleniem odpowiedzi wewnętrznie używają tokenów rozumowania, dlatego dłuższa widoczna odpowiedź nie musi oznaczać, że model zużył łącznie więcej tokenów.

Porównując modele, weź pod uwagę łączną wymaganą liczbę tokenów oraz koszt uzyskania pomyślnego wyniku. Testy porównawcze są przydatnym punktem wyjścia, ale najlepszym sposobem na poznanie rzeczywistych kosztów i wydajności modeli jest sprawdzenie ich we własnych zastosowaniach.

Jak działają tokeny

Interfejs API interpretuje słowa zgodnie z ich kontekstem w danych korpusu. Modele pobierają polecenie, przekształcają dane wejściowe w listę tokenów, przetwarzają polecenie, a następnie zamieniają przewidziane tokeny z powrotem na słowa widoczne w odpowiedzi.

Dwa słowa, które wydają się nam identyczne, mogą zostać przekształcone w różne tokeny zależnie od ich umiejscowienia w tekście. Zobacz, jak interfejs API generuje wartości tokenów dla słowa „red” zależnie od 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” odpowiadający ciągowi „ red” obejmuje spację końcową (uwaga: są 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” odpowiadający ciągowi „ Red” (ze spacją na początku i wielką literą) różni się od tokenu „2266” dla ciągu „ red” zapisanego 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 słowo „Red” występuje na początku zdania, wygenerowany token nie zawiera spacji na początku. Token „7738” różni się od tokenów z dwóch poprzednich przykładów tego słowa.

Obserwacje:

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

  • Token wygenerowany dla kropki jest taki sam („13”) we wszystkich trzech zdaniach. Wynika to z tego, że w danych korpusu kropka jest używana w bardzo podobnym kontekście.

  • Token wygenerowany dla słowa „red” zależy 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?