Cost per Token
cost per token — расчёт стоимости использования языковой модели
Cost per Token описывает тарификацию LLM API по объёму входа и выхода. К итоговой сумме могут добавляться кэш, инструменты, хранение и повторные вызовы. Конкретные ставки меняются, поэтому бюджет строят по текущему прайсу и реальному usage-логу.
Коротко
Коротко. Стоимость вызова языковой модели обычно считается отдельно для входных и выходных токенов. Реальный счёт включает также повторные попытки, кэш, инструменты и служебный контекст. Сравнивать полезнее не цену миллиона токенов, а стоимость принятого результата на своей задаче.
Базовая формула
Если ставки указаны за миллион токенов, стоимость одного вызова можно записать так:
input_tokens × input_rate / 1 000 000
+ output_tokens × output_rate / 1 000 000
+ cache_cost
+ tool_cost
+ storage_cost
Ставки input_rate и output_rate берутся из актуального прайса точной модели. Алиас модели, дата версии, регион и режим обработки могут влиять на цену.
Что входит во вход
Input — не только последняя фраза пользователя. В него могут попасть:
- system и developer instructions;
- история диалога;
- документы из RAG;
- описания инструментов и JSON-схемы;
- результаты прежних вызовов;
- служебные разделители и мультимодальные представления.
Поэтому короткий видимый вопрос иногда создаёт большой вход. Надёжный источник числа — поле usage в ответе API или журнал провайдера.
Почему выход считают отдельно
Генерация новых токенов и обработка готового контекста имеют разный вычислительный профиль. Провайдеры могут назначать для них разные ставки. Соотношение не является законом и меняется между моделями и режимами.
Ограничение длины ответа помогает бюджету, но слишком жёсткий предел приводит к обрыву и повторному вызову. Считать стоит весь завершённый процесс.
Кэш и пакетная обработка
Prompt caching позволяет повторно использовать вычисления для совпадающего префикса. Провайдер может отдельно считать запись в кэш, чтение и срок хранения. Экономия появляется только при фактическом попадании в кэш.
Пакетные и отложенные режимы иногда имеют другой прайс и время выполнения. Это удобно для несрочных задач, но условия не стоит фиксировать в статье: они принадлежат конкретному API.
Инструменты и другие модальности
Поиск, выполнение кода, работа с файлами, изображения и аудио могут тарифицироваться:
- за вызов;
- по объёму обработанных данных;
- как дополнительные токены;
- как отдельное вычислительное время.
Фраза «инструмент встроен» не означает, что он бесплатен. Формулу проверяют в документации провайдера и подтверждают по usage.
Наглядный пример
Редакция генерирует описания для карточек. Два кандидата показывают похожую цену токена, но ведут себя по-разному:
- модель A чаще выдаёт готовый текст с первой попытки;
- модель B дешевле за вызов, но требует длинной инструкции и повторной редакции.
В лог записывают вход, выход, кэш, инструменты, число попыток и результат проверки редактором. После этого считают:
стоимость принятых результатов / число принятых результатов
Такая метрика учитывает качество и переживает смену прайса лучше рекламного сравнения.
Как оценить месячный бюджет
Для каждой категории запроса берут реальное распределение, а не один «средний» пример:
- Собирают небольшой набор типичных, коротких и тяжёлых запросов.
- Запускают его через точную модель и сохраняют usage.
- Добавляют повторы, ошибки, кэш и инструменты.
- Умножают на ожидаемый объём.
- Закладывают резерв на пики и изменение поведения пользователей.
Отдельно полезно поставить технический лимит расходов и уведомление, чтобы ошибка цикла не превратилась в неожиданный счёт.
Токен не равен слову
Разные модели используют разные токенизаторы. Один русский текст может разбиться на разное число токенов, а служебные сообщения добавят собственный объём. Универсального коэффициента «слов на токен» нет.
Для предварительной оценки нужен токенизатор конкретной модели. Для финансового отчёта — фактический usage от API.
Облако и локальный запуск
При self-hosted запуске нет тарифа провайдера за токен, но остаются:
- аренда или амортизация ускорителя;
- электричество и охлаждение;
- время простоя;
- работа инженеров;
- хранение, сеть и наблюдаемость;
- запас мощности для пиков.
Сравнение проводят по полной стоимости на одинаковой нагрузке и одинаковом качестве. Универсального порога запросов, после которого локальный сервер выгоднее, не существует.
Как снижать расходы
- Убирать повторяющийся и нерелевантный контекст.
- Кэшировать стабильный префикс там, где это поддерживается.
- Ограничивать бесконечные агентские циклы.
- Использовать меньшую модель только после проверки качества.
- Сжимать документы до релевантных фрагментов.
- Не пересылать один и тот же результат инструмента без необходимости.
- Маршрутизировать запросы по сложности и измерять ошибки маршрутизатора.
- Настраивать разумный предел выхода и обработку обрыва.
Экономия, которая повышает число повторов или ручных исправлений, может оказаться мнимой.
Частые ошибки
- Сравнивать только input rate. Выход и инструменты способны изменить итог.
- Считать один запрос одной операцией. Агент может сделать несколько вызовов.
- Использовать среднюю длину без распределения. Редкие длинные запросы заметно влияют на счёт.
- Забывать служебный контекст. Схемы инструментов и история тоже тарифицируются.
- Переносить коэффициент между языками и моделями. Токенизация различается.
- Считать дорогую модель лучшей. Цена не измеряет качество конкретной задачи.
Частые вопросы
Где брать ставки?
В официальном прайсе провайдера для точного идентификатора модели и режима. Сравнительные таблицы удобны для поиска кандидатов, но не для финального расчёта.
Можно ли посчитать запрос заранее?
Примерно — токенизатором совместимой модели. Точное число зависит от служебной упаковки API, инструментов и фактического ответа.
Как учитывать ошибки?
Так же, как успешные вызовы: они расходуют токены и время. В бюджете нужна доля ретраев, тайм-аутов и ответов, которые не прошли проверку.
Как сравнить две модели?
Запустить один набор задач с одинаковыми критериями, а затем сравнить качество, задержку и стоимость принятого результата.
Главное
Cost per Token — исходная единица расчёта, а не полный бюджет продукта. Итог складывается из входа, выхода, кэша, инструментов, повторов и качества. Точные ставки быстро меняются; воспроизводимыми остаются формула, usage-лог и проверка на реальной нагрузке.