Планирование ИИ / CLEARBYTE

Токены ИИ, слова и символы: как измерить запрос до расчёта стоимости

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

В этом руководстве

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

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

Разделяйте слова, символы 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. Для токенов нужен соответствующий токенизатор или поддерживаемый метод поставщика. Затем измеренные значения можно использовать в калькуляторах стоимости и контекста.

Источники и определения

Метод проверен: