Трендовые github проекты в нашем телеграм канале. Подпишись → Экономика LLM-инференса: почему один запрос может быть дорогим
LLM кажется обычным API: отправил текст, получил ответ. Но под капотом каждый запрос — это вычисления на дорогих ускорителях, память для контекста, генерация токенов, иногда tool calls, retries и постобработка. Поэтому два внешне похожих запроса могут отличаться по стоимости в разы.
Если строить продукт на LLM, экономику инференса нужно понимать заранее. Иначе стоимость токенов внезапно станет главным ограничением архитектуры.
Input и output tokens
Базовая стоимость обычно считается по токенам: сколько отправили модели и сколько она сгенерировала. Output почти всегда дороже input, потому что генерация последовательная: модель производит токены один за другим.
Практический вывод: длинный ответ стоит не только денег, но и latency. Если продукту нужен краткий JSON, не просите модель писать эссе.
Контекст стоит дорого
Большой контекст удобен, но дорог. Если в каждый запрос отправлять всю историю диалога, документацию, schema, policy и примеры, цена будет расти даже для простого ответа.
Оптимизации:
- summarization истории;
- retrieval только нужных фрагментов;
- short system prompt;
- отдельные промпты для разных задач;
- удаление повторяющегося boilerplate;
- хранение состояния вне модели.
Контекст должен быть релевантным, а не максимальным.
Prompt caching
Некоторые модели поддерживают кэширование неизменяемой части prompt. Это полезно, если большой system prompt или документация повторяются между запросами.
Но кэш работает только при соблюдении условий: одинаковый префикс, достаточный размер, поддержка конкретной модели. Если каждый запрос чуть меняет начало prompt, кэш может не сработать.
Поэтому prompt нужно проектировать так, чтобы стабильная часть была в начале, а динамические данные — позже.
Tool calls и цепочки
Агентный сценарий дороже обычного чата. Один пользовательский запрос может превратиться в цепочку:
- понять задачу;
- вызвать поиск;
- прочитать документы;
- вызвать API;
- сгенерировать план;
- выполнить tool;
- проверить результат;
- написать ответ.
Каждый шаг — отдельный инференс или дополнительные токены. Если не контролировать количество итераций, стоимость агента становится непредсказуемой.
Latency тоже деньги
Медленный inference влияет на UX и инфраструктуру. Долгие запросы держат соединения, увеличивают timeouts, требуют очередей и усложняют retries.
Способы снизить latency:
- выбирать модель по задаче;
- ограничивать max tokens;
- stream output;
- использовать smaller model для классификации;
- кэшировать ответы;
- выполнять независимые операции параллельно;
- заранее готовить контекст.
Не всё нужно отправлять в самую дорогую модель.
Модель по роли
Хорошая архитектура использует разные модели для разных задач:
- дешёвая модель для routing;
- средняя для черновика;
- сильная для сложного reasoning;
- embedding model для поиска;
- отдельный reranker при необходимости.
Это похоже на microservices: не каждый запрос должен идти в самый тяжёлый сервис.
Практики контроля бюджета
Для production нужны лимиты:
- max input/output tokens;
- budget per user;
- budget per task;
- rate limits;
- tracing стоимости;
- алерты по аномалиям;
- fallback на cheaper model;
- отключение лишних tool calls.
Без observability по стоимости команда узнает о проблеме из счёта.
Итог
Стоимость LLM-инференса складывается из токенов, контекста, output, tool calls, latency и выбранной модели. Экономить нужно не за счёт ухудшения продукта, а за счёт архитектуры: короткие промпты, релевантный контекст, кэширование, routing и лимиты.
LLM API — это не магический endpoint, а вычислительный ресурс. Чем раньше продукт начинает считать его экономику, тем устойчивее будет архитектура.