🔢
AI-инструменты
March 22, 20267 min readBy BrowseryTools

Токены в языковых моделях: что это и как их считать

Разбираем, что такое токены, как разные модели токенизируют текст, почему количество токенов важно для производительности и стоимости, и как эффективно управлять контекстным окном.

токеныLLMконтекстное окнотокенизацияAI

Когда разработчики начинают работать с API больших языковых моделей, почти сразу возникает один вопрос: «Насколько длинным может быть это?» Они мыслят словами, абзацами или символами — но модель мыслит токенами. Понимание того, что такое токены, как они считаются и почему это важно — одно из наиболее практически полезных знаний, которые можно получить до того, как строить что-либо серьёзное поверх LLM.

Воспользуйтесь Счётчиком токенов BrowseryTools — бесплатно, без регистрации, всё остаётся в браузере — чтобы подсчитать токены для любого текста до отправки его в API.

Что такое токен? (Не слово, не символ)

Токен — фундаментальная единица текста, которую языковая модель обрабатывает. Это не слово. Не символ. Это фрагмент текста, который токенизатор модели научился воспринимать как единое целое — и этот фрагмент может быть как отдельным символом, так и многосимвольной частью слова или целым распространённым словом.

Вот примеры того, как предложение может разбиваться на токены токенизатором семейства GPT:

"Hello, world!"
→ ["Hello", ",", " world", "!"]  — 4 токена

"unbelievable"
→ ["un", "believ", "able"]  — 3 токена

"ChatGPT"
→ ["Chat", "G", "PT"]  — 3 токена

"2026-03-22"
→ ["2026", "-", "03", "-", "22"]  — 5 токенов

Обратите внимание: распространённые короткие слова вроде «Hello» дают один токен, тогда как длинные или редкие слова разбиваются на несколько. Знаки препинания, числа и специальные символы часто являются самостоятельными токенами. Токенизатор не просто разбивает по пробелам или знакам препинания — он использует обученный словарь подсловных единиц для достижения наилучшего баланса между размером словаря и эффективностью представления.

Как работают токенизаторы: Byte-Pair Encoding

Большинство современных LLM — GPT-4, Claude, Gemini, Llama — используют вариант Byte-Pair Encoding (BPE) или близкий алгоритм SentencePiece. BPE был изначально разработан для сжатия данных; его адаптировали для NLP, потому что он элегантно решает проблему открытого словаря.

Обучение BPE начинается с отдельных символов (или байтов) как базового словаря. Затем алгоритм многократно находит наиболее часто встречающуюся пару символов в обучающем корпусе и объединяет её в новый одиночный символ. После тысяч таких слияний итоговый словарь содержит распространённые слова как отдельные токены, распространённые префиксы и суффиксы как токены, а редкие слова — как последовательности меньших токенов. Конечный размер словаря, как правило, составляет 32 000 — 100 000 токенов.

Это означает, что токенизация любого текста целиком зависит от конкретного словаря, на котором обучена модель. GPT-4, Claude и Gemini используют разные токенизаторы — один и тот же текст может давать разное количество токенов в каждой модели. Никогда не считайте, что количество токенов, измеренное для одной модели, применимо к другой.

Правило «750 слов на 1000 токенов»

Вы часто встретите приближение «1000 токенов ≈ 750 слов» для английского текста. Это разумное эмпирическое правило для обычной прозы — записей в блогах, статей, документации. Оно вытекает из наблюдения, что в сбалансированном англоязычном корпусе средняя длина токена составляет около 4–5 символов, а среднее английское слово — около 5 символов плюс пробел. Таким образом, слово в среднем соответствует примерно 1,3 токена.

Но «эмпирическое правило» — верная характеристика: оно быстро разрушается на практике:

  • Код токенизируется плотнее — языки программирования используют много коротких ключевых слов, операторов и идентификаторов, которые часто являются одиночными токенами. Блок Python может давать меньше токенов на символ, чем английская проза.
  • URL и технические строки дорогие — длинный URL типа https://api.example.com/v2/users/84219/preferences?include=notifications может разбиться на 20+ токенов, хотя выглядит коротким.
  • Числа неожиданно дороги — каждая цифра в длинном числе нередко является отдельным токеном. Число «1738371600» может превратиться в 5–7 токенов.
  • Повторяющиеся пробелы и форматирование — JSON с форматированными отступами, таблицы Markdown и код с глубокими вложениями добавляют токены от символов пробела.

Нелатинские языки: арабский, китайский и разница в стоимости токенов

Правило «750 слов на 1000 токенов» — это английское правило. Для других языков соотношение может быть кардинально иным — и это имеет реальные последствия для затрат многоязычных приложений.

Арабский и иврит используют морфологию «корень + паттерн», где один корень порождает десятки производных форм через префиксы, суффиксы и внутренние изменения гласных. Слова вроде «وسيستخدمونها» (они будут использовать это) — единственное орфографическое слово, но могут токенизироваться в 5–8 токенов, потому что словарь BPE обучался преимущественно на английских данных и не содержит эти арабские формы как единые токены.

Китайский и японский сталкиваются с иной проблемой. Символы логографические — каждый несёт смысловую нагрузку, — но словарь токенов охватывает распространённые одиночные символы и некоторые распространённые многосимвольные слова. Китайский текст, как правило, даёт в 1,5–2 раза больше токенов на «словесный эквивалент», чем английский. Японский, с его смесью хираганы, катаканы и кандзи, может давать ещё больше.

Практический вывод: если вы создаёте приложение для арабского, китайского или других нелатинских языков, оценки затрат, полученные на английских тестах, значительно занижают реальные расходы на API. Всегда измеряйте количество токенов на вашем фактическом контенте с помощью Счётчика токенов BrowseryTools или библиотеки токенизатора до составления бюджетных прогнозов.

Ограничения окна контекста: почему их превышение всё ломает

У каждой LLM есть окно контекста — максимальное число токенов, которые она может обработать в одном запросе, учитывая и ввод, и вывод модели. По состоянию на начало 2026 года:

  • GPT-4o — 128 000 токенов
  • Claude 3.5 Sonnet — 200 000 токенов
  • Gemini 1.5 Pro — 1 000 000 токенов
  • Llama 3.1 70B — 128 000 токенов

Если ваш ввод превышает лимит окна контекста, API вернёт ошибку — запрос просто не выполнится. По умолчанию нет никакого корректного ухудшения: нужно обрабатывать это в логике приложения. Ещё тонкий момент: даже в пределах окна контекста существует явление «потеряно в середине» (lost in the middle): модели лучше воспроизводят информацию в начале и конце контекста, чем ту, что находится в середине. 200 тысяч токенов окна контекста не означают, что каждый токен в нём одинаково хорошо усваивается.

В чат-приложениях окно контекста заполняется по мере роста разговора. После достаточного числа обменов нужно либо обрезать старые сообщения, либо их резюмировать, либо достичь лимита и завершиться с ошибкой. Знание количества токенов на каждом шаге — то, что позволяет принимать это решение проактивно.

Последствия для проектирования промптов

Осознание токенов меняет подход к написанию промптов. Несколько конкретных следствий:

  • Системные промпты накапливаются в каждом запросе — системный промпт из 500 токенов стоит 500 × количество запросов × цена входа. При 10 000 запросов в день сокращение системного промпта с 500 до 300 токенов экономит реальные деньги каждый месяц.
  • Few-shot примеры дорогие, но эффективные — включение 3 примеров в промпт может добавить 300–500 токенов. Измерьте, стоит ли это улучшение качества затрат по сравнению с единовременной тонкой настройкой модели.
  • Длина вывода управляема — используйте max_tokens для ограничения вывода. Добавьте явные инструкции в промпт: «Ответ должен быть не длиннее 100 слов». Модели, как правило, хорошо следуют инструкциям по длине ответа, что напрямую снижает затраты на выходные токены.
  • Форматирование JSON создаёт накладные расходы — при использовании структурированного вывода (JSON-режим) кавычки, скобки и имена ключей добавляют токены поверх реальных значений данных. Ответ с 5 короткими полями легко даёт 40% накладных расходов на форматирование.

Считайте токены перед отправкой

Лучшая привычка при работе с API LLM — считать токены перед тем, как определяться с архитектурой или выходить в production. Вставьте системный промпт, типичное сообщение пользователя и любой контекст, который вы планируете включить, в Счётчик токенов BrowseryTools. Вы сразу увидите, находится ли ваш дизайн значительно ниже лимита окна контекста или опасно близко к нему — и получите цифры, необходимые для точной оценки затрат.

Бесплатный счётчик токенов — работает в браузере, без регистрации

Открыть счётчик токенов →

🛠️

Try the Tools — 100% Free, No Sign-Up

Everything runs in your browser. No uploads. No accounts. No ads.

Explore All Tools →