Token

token — единица текста, которой оперирует языковая модель

Раздел
Языковые модели
Обновлено
18.05.26

Токен (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 токен); на редких или иноязычных — расходный.

Как это работает

Цикл токенизации проходит так:

  1. Текст на входе. Например: «Сегодня хорошая погода».
  2. Токенизатор разбивает его на кусочки по своему словарю. В GPT-4 это (примерно): [«Сегод», «ня», « хорош», «ая», « пог», «ода»] — 6 токенов.
  3. Каждому токену соответствует id из словаря: [40521, 1837, 22431, 502, 9712, 1583].
  4. Модель работает только с этими числами. Все внутренние операции — над тензорами, индексированными этими id.
  5. На выходе генерируется новый 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 токенов.

Один промпт состоит из:

  1. System prompt (200 английских слов с инструкциями): ~270 токенов.
  2. Транскрипт видео (русский, 500 слов): ~1100 токенов.
  3. Финальное описание на выходе (русский, 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. Один и тот же текст в разных моделях может стоить разное количество токенов; русский и редкие языки обходятся дороже английского из-за устройства словарей. Понимать, как ваш текст превращается в токены — главный навык, чтобы не платить за лишнее, не упереться в лимит контекста и не удивляться, почему «короткий» промпт оказался длинным.