Скрытые расходы LLM: почему реальный счёт за API-запросы отличается от расчёта

Habr AI · оригинал

Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

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

Неверный учёт стоимости LLM-запросов приводит к непредсказуемым расходам в продакшене. Разбор формул расчёта и нюансов кэширования помогает разработчикам точно прогнозировать бюджет и выбирать оптимальные параметры моделей.

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

Ключевую роль играет цена выходных токенов, которая у большинства моделей в 4–8 раз превышает стоимость входных. В рассуждающие модели (reasoning models) входят токены внутренних размышлений, которые не видны пользователю, но тарифицируются по цене выхода. Например, при высоком уровне усилий модель может потратить на размышления в несколько раз больше токенов, чем на сам ответ, что многократно увеличивает стоимость запроса даже при коротком видимом результате.

Механика кэширования промптов также требует внимательного подхода. У OpenAI и Anthropic кэш работает по принципу префиксов: если начало запроса совпадает до токена, провайдер снижает цену за эти токены. Однако запись в кэш часто стоит дороже обычного входа (множитель 1,25 или 2), поэтому окупаемость наступает только при повторном использовании префикса. У Gemini действует иной механизм с платой за хранение кэша во времени, что меняет логику расчёта выгодности.

Особую сложность представляет различие в API-интерфейсах провайдеров. Поля для подсчёта токенов называются по-разному и считаются неодинаково: у OpenAI и Gemini кэшированные токены уже включены в общий вход, тогда как у Anthropic они вынесены в отдельные поля. Неправильная интерпретация этих данных при автоматизации расчётов может привести к ошибкам в оценке стоимости на порядок.

Дополнительным фактором является изменение алгоритмов токенизации. Например, новые модели Claude генерируют примерно на 30% больше токенов на тот же текст по сравнению с предыдущими версиями. Это означает, что даже при одинаковом тарифе за миллион токенов новая модель может оказаться дороже на реальных данных. Поэтому для точного сравнения моделей рекомендуется прогонять одинаковые тестовые промпты и анализировать итоговую стоимость по данным usage.

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