Токены ИИ, слова и символы: как измерить запрос до расчёта стоимости
Токен — единица конкретного токенизатора модели, а не фиксированное число слов или символов. Текст точно считают подходящим токенизатором с нужными настройками. Для API учитывают структуру сообщений и инструменты, затем сверяют оценку с полями фактического использования поставщика.
В этом руководстве
- Разделяйте слова, символы Unicode и токены
- Посчитайте локальный образец известным токенизатором
- При планировании контекста учитывайте весь запрос
- Подготовьте воспроизводимую таблицу измерений
- Зарезервируйте ответ до добавления новых материалов
- Сверьте оценку с использованием и стоимостью
- Частые вопросы
- Источники и определения
Счётчик слов помогает проверить длину статьи, но не определяет надёжно вместимость контекста модели или цену запроса. Один видимый текст разные токенизаторы разбивают по-разному, а настоящий запрос обычно содержит больше, чем абзац последнего сообщения.
Ниже раздельно рассматриваются измерение исходного текста, полного запроса и оплачиваемого использования. Есть локальный пример и таблица для собственных результатов. Точные количества токенов не выдумываются для модели, на которой текст не был измерен.
Разделяйте слова, символы Unicode и токены
Видимое слово может стать одним токеном, несколькими частями либо сочетанием с пробелом и пунктуацией. Во вводном курсе Hugging Face объясняются подходы по словам, символам и частям слов. На разбиение влияют язык, написание, программный код, пробелы и словарь токенизатора.
Количество символов Unicode отвечает на другой вопрос. Символы могут занимать несколько кодовых единиц или байтов, а видимый знак — состоять из нескольких кодовых точек. Универсального перевода любой из этих величин в токены нет. Правило «символов на токен» допустимо лишь как грубая оценка для указанного образца.
| Задача | Подходящее измерение | Ограничение |
|---|---|---|
| Проверить длину статьи | Слова или символы Unicode | Не определяет токены модели |
| Измерить файл текста для одного токенизатора | Идентификаторы токенов с нужными настройками | Может не включать формат чата и служебные данные запроса |
| Оценить структурированный API-запрос | Поддерживаемый поставщиком подсчёт или точное форматирование | Может отличаться от итогового использования |
| Сверить оплачиваемое использование | Реальные поля usage и действующие правила оплаты | Не оценивает запрос другого поставщика |
Посчитайте локальный образец известным токенизатором
Для формата Hugging Face tokenizers загрузите правильный локальный tokenizer.json и закодируйте текстовый файл UTF-8. Запишите идентификатор модели или токенизатора, ревизию файла, версию пакета и режим специальных токенов. Пример рассчитан на API опубликованной версии tokenizers 0.23.2: дополнение и обрезка отключены, специальные токены к исходному тексту не добавляются.
Берите файл из официальной поставки нужной модели. Код не скачивает модель, не отправляет текст серверу и не воспроизводит полный формат облачного чат-запроса. Его результат полезен только при совпадении токенизатора и настроек с вашим вопросом. Само наличие tokenizer.json ещё не подтверждает соответствие произвольной модели.
# Example environment: tokenizers==0.23.2
from pathlib import Path
from importlib.metadata import version
from tokenizers import Tokenizer
# Use the matching tokenizer.json already saved locally.
tokenizer = Tokenizer.from_file("tokenizer.json")
tokenizer.no_padding()
tokenizer.no_truncation()
text = Path("sample.txt").read_text(encoding="utf-8")
encoded = tokenizer.encode(text, add_special_tokens=False)
print("tokenizers version:", version("tokenizers"))
print("raw-text tokens:", len(encoded.ids))
# Record tokenizer identity/revision separately.
# This is not a complete chat-request or billing count.При планировании контекста учитывайте весь запрос
Чат-запрос может содержать системные инструкции, историю, найденные документы, определения инструментов и форматирование. Шаблон чата добавляет управляющие токены вокруг ролей и границ сообщений. Подсчёт последнего вставленного абзаца способен заметно недооценить вход.
Для облачного поставщика используйте документированную функцию подсчёта, если она поддерживает нужные типы данных. Документация Claude описывает измерение структурированного входа и случаи, когда нужны сведения фактического использования. Особенно внимательно проверяйте ограничения предварительной оценки для инструментов, изображений и документов.
Не вставляйте секреты и чувствительный клиентский текст в неизвестные онлайн-счётчики. Локальный токенизатор работает с исходным текстом на вашем устройстве, а endpoint поставщика получает переданный ему запрос. Сначала определите допустимый способ обработки этих данных, затем выполняйте измерение.
Подготовьте воспроизводимую таблицу измерений
Выберите характерные образцы: обращение в поддержку, фрагмент кода, таблицу и отрывок на каждом языке приложения. Сохраняйте точные байты входа. Незаметное изменение переносов, пробелов или пунктуации между запусками делает сравнение менее надёжным.
Для каждого образца фиксируйте идентификатор и ревизию токенизатора, режим специальных токенов, локальное количество и оценку полного запроса, если она доступна. Неизмеренное поле оставляйте незаполненным вместо подстановки предположительного коэффициента. Разные результаты токенизаторов описывают эти образцы, а не общий рейтинг качества поддержки языка.
| Образец | Токенизатор и ревизия | Токены исходного текста | Количество или оценка полного запроса |
|---|---|---|---|
| Обращение в поддержку | Записать точный идентификатор | Измерить локально | Измерить поддерживаемым форматом запроса |
| Фрагмент кода | Записать точный идентификатор | Измерить локально | Измерить поддерживаемым форматом запроса |
| Отрывок на другом языке | Записать точный идентификатор | Измерить локально | Измерить поддерживаемым форматом запроса |
Зарезервируйте ответ до добавления новых материалов
В условном плане выбранная модель допускает совмещённый контекст 32,000 токенов для нужного типа запроса. Из них выделены 4,000 на ответ и 2,000 на запас планирования. Остаётся 26,000 на измеренный вход. Если инструкции, история и инструменты занимают 8,000, для найденных материалов доступно 18,000. Запятые в примере разделяют тысячи.
Эти числа — явно условные предположения, а не характеристика действующей модели. Поставщики по-разному определяют контекст, выход, рассуждения и использование инструментов. Проверьте актуальные условия модели и введите собственные величины в калькулятор контекста. То, что запрос помещается, не доказывает полезность каждого включённого отрывка.
Hypothetical planning budget:
32,000 combined context
− 4,000 output reserve
− 2,000 planning buffer
= 26,000 input budget
26,000 − 8,000 instructions/history/tools
= 18,000 available for retrieved contentСверьте оценку с использованием и стоимостью
После небольшого настоящего теста сохраните возвращённые поставщиком поля использования и сравните их с оценкой того же запроса. Раздельно учитывайте документированные категории кешированного входа, ответа, рассуждений и других оплачиваемых частей. Пропущенное определение инструмента нельзя компенсировать сменой коэффициента «слов на токен».
Калькулятор стоимости токенов использует измеренные количества и действующие цены, которые вводите вы. Разделяйте вход и выход, сохраняйте единицу цены, например стоимость миллиона токенов. Воспроизводимая смета получается из фактического использования и явных тарифов, а не из универсального отношения слов к токенам.
Частые вопросы
Один токен всегда равен четырём символам?
Нет. Такое соотношение может быть лишь грубой оценкой отдельных текстов и токенизаторов. Результат зависит от языка, кода, пунктуации, пробелов и устройства токенизатора.
Почему локальный подсчёт отличается от usage API?
В запросе могут быть форматирование, инструкции, история, инструменты и типы входа, которых нет в исходном тексте. Могут различаться токенизатор и специальные токены. Сравнивайте один полный запрос по определениям поставщика.
Может ли счётчик слов этого сайта точно посчитать токены модели?
Нет. Он измеряет текст: например слова и символы Unicode. Для токенов нужен соответствующий токенизатор или поддерживаемый метод поставщика. Затем измеренные значения можно использовать в калькуляторах стоимости и контекста.
Источники и определения
- Hugging Face LLM Course: Tokenizers
- Claude Platform: Token counting
- Hugging Face tokenizers 0.23.2: published Python package and API examples
- Hugging Face Transformers: Chat templates
Метод проверен: