Token

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

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

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

Коротко

Коротко. Языковая модель получает не строку букв, а последовательность числовых идентификаторов. Токенизатор сопоставляет каждому фрагменту текста элемент словаря: это может быть слово, окончание, пробел со словом, знак или несколько байтов. Поэтому одинаковое предложение занимает разное число токенов у разных моделей.

Что это такое

Токен — условная единица между исходным текстом и нейросетью. Он не обязан совпадать ни с буквой, ни со словом.

Фраза может разбиться примерно так:

«нейросеть отвечает»
→ [«нейро] [сеть] [ отвечает]
→ [идентификатор 1] [идентификатор 2] [идентификатор 3]

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

После токенизации идентификатор превращается в вектор — embedding. Уже эти векторы проходят через слои модели. На выходе процесс идёт в обратную сторону: модель выбирает следующий идентификатор, а декодер собирает из последовательности читаемый текст.

Зачем нужен токенизатор

Словарь из всех возможных слов был бы огромным и всё равно не покрывал бы имена, опечатки и новые термины. Словарь только из отдельных символов был бы компактным, но делал бы последовательности слишком длинными.

Подсловные токены дают компромисс:

  • частые слова и фрагменты занимают мало позиций;
  • редкое слово собирается из знакомых частей;
  • новые имена можно представить без добавления отдельной записи;
  • разные письменности кодируются одним конечным словарём.

Для построения словаря применяют BPE, Unigram, SentencePiece и другие алгоритмы. Некоторые токенизаторы используют байтовый уровень или byte fallback, поэтому способны закодировать почти любую строку, хотя редкие символы могут занять больше позиций.

Что влияет на количество токенов

Язык. Если язык и его морфология хорошо представлены в данных и словаре, частые части слов кодируются компактнее. Нельзя раз и навсегда сказать, что русский занимает ровно в два раза больше английского: соотношение различается у моделей и текстов.

Пробелы и регистр. В некоторых словарях фрагмент с ведущим пробелом — отдельный токен. Дом, дом и ДОМ могут разбиться по-разному.

Код. Отступы, повторяющиеся конструкции и знакомые имена функций иногда кодируются компактно, а случайные идентификаторы, хэши и base64 — очень расточительно.

Числа. Длинная последовательность цифр может делиться на группы разной длины. Формат с разделителями тоже меняет счёт.

Редкие символы и эмодзи. Один видимый знак не обязательно равен одному токену. Составной эмодзи может включать несколько Unicode-кодовых точек и байтов.

Служебная разметка. Роли сообщений, границы инструментов, JSON-схема и внутренние разделители тоже занимают место, хотя пользователь не всегда видит их в интерфейсе.

Токены и контекстное окно

Лимит контекста задаётся в токенах. В него могут входить:

  • системная инструкция;
  • сообщения пользователя и ассистента;
  • документы и RAG-фрагменты;
  • описания инструментов и их результаты;
  • текущий запрос;
  • место под будущий ответ, если API считает общий бюджет.

Поэтому «документ на тысячу слов» не позволяет заранее узнать, поместится ли запрос. Кроме документа есть скрытая обвязка, а само число токенов зависит от языка и формата.

Подробнее это разобрано в статье о контекстном окне.

Токены и стоимость API

Провайдеры часто отдельно тарифицируют вход и выход. Формула для одного вызова выглядит так:

стоимость = входные токены × ставка входа
          + выходные токены × ставка выхода
          + дополнительные инструменты и хранение, если они тарифицируются

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

Для грубой оценки проекта полезно взять несколько типичных примеров, посчитать их официальным токенизатором и добавить повторные попытки. Среднее число слов здесь менее надёжно.

Пример на практике

Сервис делает описания к видеороликам. В один запрос входят инструкция, транскрипт, метаданные и готовый ответ. Команда измеряет каждую часть отдельно:

инструкция        → A токенов
транскрипт        → B токенов
метаданные        → C токенов
ответ             → D токенов

Тогда расход одного успешного вызова равен A + B + C входных и D выходных токенов. В месячную оценку дополнительно входят повторы после ошибок, варианты ответа и вызовы инструментов.

Если транскрипт слишком велик, его можно делить на смысловые части, делать промежуточное резюме или выбирать нужные фрагменты. Простое обрезание конца способно удалить вывод ролика — именно ту часть, которая нужна описанию.

Что происходит с изображениями и аудио

Мультимодальные API тоже переводят вход в внутренние единицы. Изображение может разбиваться на patches или tiles, аудио — на кадры или другие представления. Провайдер иногда отображает их как токены для тарификации, но это не те же текстовые кусочки словаря.

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

С чем часто путают

  • Токен и слово. Слово может быть одним токеном, несколькими или частью токена вместе с пробелом.
  • Токен и символ. Один токен способен содержать несколько символов, а один видимый символ — распасться на несколько токенов.
  • Токен и параметр. Токены — вход и выход, параметры — обученные веса модели.
  • Token ID и embedding. ID — номер элемента словаря; embedding — вектор, найденный по этому номеру.
  • Токенизация и шифрование. Идентификаторы легко декодируются обратно и не защищают текст.
  • Токен и слово в интерфейсе оплаты. Некоторые сервисы считают символы, секунды, изображения или кредиты, а не сырые токены.

Частые ошибки и заблуждения

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

«Все модели считают одинаково». Даже родственные модели могут получить другой словарь и служебный формат сообщений.

«Большой словарь всегда лучше». Он сокращает некоторые последовательности, но увеличивает embedding- и output-слои и не гарантирует лучшего понимания.

«Если сократить пробелы, смысл не изменится, а токенов станет меньше». Для кода, таблиц и разметки пробелы несут структуру. Агрессивное сжатие может испортить задачу ради небольшой экономии.

«Пользовательский текст — весь вход». API добавляет роли, служебные маркеры, схему инструментов и другие данные. Точный счёт лучше получать тем же методом, который рекомендует провайдер.

Частые вопросы

Как посчитать токены до отправки? Официальным токенизатором или методом подсчёта для точной модели. Если провайдер не публикует локальный tokenizer, можно использовать endpoint оценки либо измерить расход тестового вызова.

Почему два API показывают разные числа для одной фразы? У них разные словари, алгоритмы и служебная упаковка сообщений.

Можно ли уменьшить расход без потери качества? Часто помогает убрать повторы, сократить историю, кэшировать постоянную инструкцию и передавать только релевантные документы. Эффект проверяют на тестах, потому что слишком сильное сжатие ухудшает ответ.

Почему ответ оборвался? Мог закончиться отдельный лимит выхода, общий контекст, бюджет приложения или время выполнения. Причину обычно видно в метаданных завершения API.

Токены модели — это слова, которыми она «думает»? Токены — интерфейс между текстом и вычислениями. Внутри модель работает с векторами и скрытыми состояниями, поэтому буквальное сравнение с человеческими словами упрощает механизм.

Главное

Токен — элемент словаря конкретной модели, а не универсальная мера слова. Он связывает текст с числовым представлением и используется для лимитов и расчёта API. Самый надёжный счёт даёт точный токенизатор на реальном запросе вместе со служебными сообщениями, документами и ожидаемым ответом.