Token
token — единица текста, которой оперирует языковая модель
Токен (token) — это единица текста, в которой LLM измеряет свой вход и выход. Чаще всего это часть слова: «программирование» делится на 3–4 токена в английском токенизаторе и на 5–8 в русском. Длина запроса в API считается токенами, цена считается токенами, контекстное окно ограничено токенами. Один английский токен — это примерно 0.75 слова или 4 символа; русские токены короче и обходятся дороже на той же текстовой длине.
Коротко
Коротко. Токен — это кусочек текста, которым «думает» языковая модель. Не буква и не слово, а что-то посередине: для английского обычно 4–5 символов или 3/4 слова, для русского — 1–2 символа. Перед обработкой текст режется на токены через токенизатор; модель видит только последовательность номеров этих токенов из своего словаря. От количества токенов зависят цена API-запроса, длина допустимого ввода и скорость генерации.
Что это такое
Сентябрь 2023-го. Разработчик пишет ChatGPT длинный технический документ — 20 страниц. Через минуту получает ошибку: «context length exceeded, 9 800 tokens needed, 8 192 available». Где-то внутри его текст был порезан на куски, посчитан, и оказалось, что в окно памяти модели он не помещается.
Это и есть момент, когда токены перестают быть абстракцией. Модель не видит ваш текст как буквы. Она работает с последовательностью чисел — id'шников из своего словаря, которые ставятся в соответствие фрагментам текста. Один такой фрагмент — токен.
Длина токена непостоянна. Английское the или cat — по одному токену. Русское «стол» — обычно 2 токена. Японское 「猫」 — иногда 3 токена для одного иероглифа. Это зависит от того, какие фрагменты часто встречались в обучающем корпусе токенизатора и попали в словарь.
Современные токенизаторы используют алгоритм BPE (Byte-Pair Encoding) или его варианты. Идея простая: начинаем с букв, считаем самые частые пары (th, he, in), объединяем их в новые токены и повторяем, пока не получится словарь нужного размера (обычно 30–100 тысяч токенов). На частых словах токенизатор экономный (1 слово = 1 токен); на редких или иноязычных — расходный.
Как это работает
Цикл токенизации проходит так:
- Текст на входе. Например:
«Сегодня хорошая погода». - Токенизатор разбивает его на кусочки по своему словарю. В GPT-4 это (примерно):
[«Сегод», «ня», « хорош», «ая», « пог», «ода»]— 6 токенов. - Каждому токену соответствует id из словаря:
[40521, 1837, 22431, 502, 9712, 1583]. - Модель работает только с этими числами. Все внутренние операции — над тензорами, индексированными этими id.
- На выходе генерируется новый id — например, 4521 для
«ясная». Decoder превращает его обратно в текст.
Важно: токенизация — это часть модели. Разные модели имеют разные токенизаторы и потому считают токены по-разному. «ChatGPT» в GPT-3.5 это 2 токена, в GPT-4 — 3, в Llama 3 — может быть 4.
Что определяет длину текста в токенах:
- Английский — самый «дешёвый» язык. 1 токен ≈ 4 символа ≈ 0.75 слова. Тысяча слов английского текста — около 1300 токенов.
- Русский, китайский, японский — дороже из-за UTF-8 многобайтных символов и редких подстрок в словаре. Тысяча слов русского — обычно 2000–2500 токенов.
- Код — где-то посередине. Английские названия переменных дёшевы; редкие имена функций и операторы могут стоить дороже.
- Спецсимволы, эмодзи, длинные числа — часто дорогие.
«🎉»иногда занимает 3 токена.
Размеры словарей популярных токенизаторов:
| Токенизатор | Размер словаря | Где применяется |
|---|---|---|
| GPT-2 BPE | 50 257 | GPT-2 и старые модели |
| cl100k_base | 100 277 | GPT-3.5, GPT-4 |
| o200k_base | 200 019 | GPT-4o, новые модели |
| Llama 3 | 128 256 | Llama 3 семейство |
| SentencePiece (Gemini) | ~256 000 | Gemini, MMR |
Пример на практике
Видеомонтажёр пишет промпт для генерации YouTube-описаний через GPT-4o API. Каждое видео — 5–10 минут, описание — 150–200 слов.
Стоимость на 2026:
- Вход: $5.00 за 1M токенов.
- Выход: $15.00 за 1M токенов.
Один промпт состоит из:
- System prompt (200 английских слов с инструкциями): ~270 токенов.
- Транскрипт видео (русский, 500 слов): ~1100 токенов.
- Финальное описание на выходе (русский, 150 слов): ~330 токенов.
Итого один запрос: ~1370 input + 330 output = ~1700 токенов.
Стоимость: (1370 / 1 000 000) × $5 + (330 / 1 000 000) × $15 = $0.0119 — чуть больше цента на видео.
За месяц 200 видео — около $2.40. Дешевле кофе.
Что было бы дороже:
- Тот же промпт, но Claude 3.5 Sonnet (вход $3 / выход $15) — обошлось бы дешевле на 30%.
- Локальная Llama 3 70B Q4 (через ComfyUI с LLM-нодой или ollama) — стоимость только электричества, но скорость 30 t/s вместо облачных 200.
- Прогонять промпт через GPT-4 Turbo (старая модель) — дороже в 2.5 раза.
С чем часто путают
- Токен и слово — токен почти никогда не равен слову. Длинные или редкие слова делятся на несколько токенов; короткие частые могут включать пробел перед ними (
theэто один токен). - Токен и символ — токен не равен букве. Один токен — обычно 4–6 байт. Но смайлы, иероглифы, редкие символы могут быть 3+ токенов на один знак.
- Токены и параметры — это разные шкалы модели. Параметры — внутренние веса модели (175B в GPT-3). Токены — единицы текста на входе и выходе (контекст до 128K у GPT-4 Turbo). Связь только в том, что для каждого токена в словаре есть свой embedding-вектор в параметрах.
- Token и embedding — токен это число (id). Embedding — это вектор (обычно 768–4096 чисел), в который превращается токен внутри модели. Один токен → один embedding, всегда одинаковый для одной модели.
Частые ошибки и заблуждения
- «1 токен = 1 слово». Только грубое приближение для английского. На русском соотношение 1 слово ≈ 2.5 токена. На редких языках (хинди, иврит) — иногда 4–5 токенов на слово.
- Все модели считают токены одинаково. Нет. У каждой модели — свой токенизатор. Длина одного и того же текста может отличаться на 30–50% между GPT-3.5, GPT-4o, Claude и Llama 3.
- Стоимость API зависит только от входных токенов. Output обычно стоит в 2–5 раз дороже input. Длинный ответ модели может оказаться дороже самого промпта.
- Контекстное окно — это окно для пользователя. Это окно для модели целиком: туда входят и system prompt, и история диалога, и присланные файлы, и сам последний запрос. Полезный input часто в разы меньше заявленного 128K или 200K.
- Большой словарь токенайзера всегда лучше. Большой словарь экономит токены на тексте, но раздувает таблицу embedding'ов и output-projection. Это компромисс между компактностью токенизации и размером модели.
Связанные термины
- Context Window — максимальное количество токенов, которое модель может удержать в одном запросе.
- Tokenizer — компонент, превращающий текст в токены и обратно.
- Embedding — векторное представление токена внутри модели.
- BPE (Byte-Pair Encoding) — алгоритм, лежащий в основе большинства токенизаторов.
- LLM — модель, оперирующая токенами.
- Cost per token — цена API, считается отдельно для input и output.
- Cl100k / o200k — конкретные токенизаторы OpenAI.
Частые вопросы
Сколько примерно токенов в книге на 300 страниц? В английской — около 100–120 тысяч токенов. В русской — 200–250 тысяч. Это уже не помещается в контекст GPT-4 (128K), но влезает в Claude 200K или Gemini 1M.
Как уменьшить количество токенов в промпте? Писать короче, без воды. Использовать английский для system-промптов (дешевле). Не дублировать инструкции. Если RAG — подсовывать только релевантные фрагменты, не всё. Готовый текст можно прогнать через summarizer перед передачей в дорогую модель.
Почему OpenAI считает токены отдельно для input и output? Эти операции технически разные. Input token обрабатывается один раз через forward pass (можно батчить, эффективно). Output token генерируется по одному, последовательно — модель не может «угадать» следующий, не зная предыдущего. Поэтому output дороже в compute.
Можно ли посчитать токены без интернета?
Да. Библиотека tiktoken (для OpenAI), transformers (для HuggingFace), Llama tokenizer. В Python: import tiktoken; enc = tiktoken.encoding_for_model("gpt-4"); len(enc.encode("ваш текст")).
Что такое special tokens?
Служебные токены, которые не несут текстового смысла, но управляют моделью: <|im_start|> (начало сообщения в ChatML), <|im_end|> (конец), <|system|>, <eos> (конец генерации). Они не отображаются в ответе, но влияют на поведение модели.
Главное
Токен — это валюта работы с LLM. Им измеряется всё: длина запроса, размер окна, скорость генерации, стоимость API. Один и тот же текст в разных моделях может стоить разное количество токенов; русский и редкие языки обходятся дороже английского из-за устройства словарей. Понимать, как ваш текст превращается в токены — главный навык, чтобы не платить за лишнее, не упереться в лимит контекста и не удивляться, почему «короткий» промпт оказался длинным.