Что такое токены?
Токены — это строительные блоки текста, которые обрабатывают модели OpenAI. Они могут быть короткими, как один символ, или длинными, как целое слово, в зависимости от языка и контекста. Пробелы, знаки препинания и части слов — всё это влияет на количество токенов. Так API внутренне сегментирует ваш текст перед генерацией ответа.
Полезные практические правила для английского языка:
1 токен ≈ 4 символа
1 токен ≈ ¾ слова
100 токенов ≈ 75 слов
1–2 предложения ≈ 30 токенов
1 абзац ≈ 100 токенов
~1 500 слов ≈ 2 048 токенов
Токенизация зависит от модели и кодировки. Используйте инструмент Tokenizer или tiktoken.encoding_for_model(model), чтобы получить точное количество для целевой модели.
Примеры
Вот несколько реальных примеров текста с приблизительным количеством токенов:
Цитата Уэйна Гретцки «Вы промахиваетесь в 100% бросков, которые не делаете» = 11 токенов
Устав OpenAI = 476 токенов
Декларация независимости США = 1 695 токенов
Как рассчитывается количество токенов
Когда вы отправляете текст в API:
Текст разбивается на токены.
Модель обрабатывает эти токены.
Ответ генерируется как последовательность токенов, а затем преобразуется обратно в текст.
Использование токенов отслеживается в нескольких категориях:
Входные токены — токены в вашем запросе.
Выходные токены — токены, сгенерированные в ответе.
Кэшированные токены — повторно используемые токены из истории диалога (часто оплачиваются по сниженной ставке).
Токены рассуждений — в некоторых продвинутых моделях дополнительные «шаги мышления» включаются внутренне перед созданием итогового вывода.
Эти показатели отображаются в метаданных ответа API и используются для выставления счетов и отслеживания использования.
Чтобы глубже изучить токенизацию, используйте наш интерактивный инструмент Tokenizer, который позволяет вычислять количество токенов и видеть, как текст разбивается на токены.
Кроме того, если вы хотите токенизировать текст программно, используйте Tiktoken — быстрый BPE-токенизатор, специально применяемый для моделей OpenAI.
Лимиты токенов
У каждой модели есть максимальный суммарный лимит токенов (ввод + вывод). Современные модели высокой емкости поддерживают до сотен тысяч токенов в контексте, хотя практические лимиты могут различаться в зависимости от версии модели и вашего уровня использования.
Если вы превысите лимит, можно:
Сократить или переформулировать промпты.
Разбить большой текст на меньшие фрагменты.
Суммировать или предварительно обрабатывать входные данные перед отправкой.
Стоимость токенов
Использование API тарифицируется за токен; стоимость зависит от модели и от того, являются ли токены входными, выходными или кэшированными. Актуальные тарифы см. на странице цен OpenAI. Некоторые модели рассуждений могут использовать больше токенов внутренне, но стремятся повысить эффективность, сокращая количество токенов, нужных для выполнения задачи.
Изучение токенов
API обрабатывает слова в соответствии с их контекстом в данных корпуса. Модели принимают промпт, преобразуют ввод в список токенов, обрабатывают промпт и преобразуют предсказанные токены обратно в слова, которые мы видим в ответе.
То, что нам кажется двумя одинаковыми словами, может генерироваться как разные токены в зависимости от структуры этих слов в тексте. Рассмотрим, как API генерирует значения токенов для слова «red» в зависимости от его контекста в тексте:
В первом примере выше токен «2266» для ‘ red’ включает пробел (примечание: это примерные ID токенов для демонстрации).
Токен «2296» для ‘ Red’ (с начальным пробелом и заглавной буквой) отличается от токена «2266» для ‘ red’ со строчной буквой.
Когда ‘Red’ используется в начале предложения, сгенерированный токен не включает начальный пробел. Токен «7738» отличается от двух предыдущих примеров этого слова.
Наблюдения:
Чем более вероятен или частотен токен, тем меньший номер токена ему присваивается:
Токен, сгенерированный для точки, одинаков («13») во всех 3 предложениях. Это связано с тем, что с точки зрения контекста точка используется в данных корпуса примерно одинаково.
Токен, сгенерированный для ‘red’, различается в зависимости от положения слова в предложении:
Строчная буква в середине предложения: ‘ red’ — (токен: «2266»)
Заглавная буква в середине предложения: ‘ Red’ — (токен: «2297»)
Заглавная буква в начале предложения: ‘Red’ — (токен: «7738»)
