Расходы на языковые модели растут не так, как подсказывает интуиция
Функция, которая в демо стоит копейки, в проде обходится в тысячи долларов в месяц — и почти никогда из-за цены за токен. Куда уходят деньги на самом деле.
Демо почти ничего не стоит. Вы прогоняете функцию два десятка раз, пока её пишете, смотрите на дашборд расходов и делаете вывод, что экономика сходится. Потом она уезжает в прод, и месячный счёт оказывается на два порядка выше оценки.
Разрыв почти никогда не в цене за токен. Он в том, что демо и продакшен потребляют токены структурно по-разному.
Куда на самом деле уходят деньги
Ретраи и циклы. Агент, который иногда делает восемь шагов вместо двух, стоит в среднем не вчетверо больше — он стоит столько, сколько стоит хвост этого распределения, а агенты живут именно в хвосте. Один сценарий отказа, загоняющий цикл в лимит шагов, способен определить весь счёт.
Контекст, растущий вместе с диалогом. Если вы пересылаете всю историю на каждом ходу, диалог из двадцати реплик — это не двадцать запросов. Это квадратичный объём входных токенов. Самый частый сюрприз из всех.
Входные данные, размер которых не заложили. Суммаризатор документов, проверенный на PDF в две страницы, на третий день встречает документ на триста. Что пользователь может загрузить, то он и загрузит.
Длина ответа, которую никто не ограничил. Модели по умолчанию многословны. Ответ, которому хватило бы сорока токенов, приходит на четырёхстах, а на нагрузках с большим выводом именно вывод — дорогая сторона.
Прежде чем что-то оптимизировать, получите разбивку по функциям. Не «мы потратили $4000 на API», а «вот этот эндпоинт съел из них $3100». Большинство команд месяц оптимизируют не ту функцию просто потому, что не разделили счёт.
Что чинить, в порядке отдачи
Кешируйте стабильный префикс. Длинные системные промпты, определения инструментов и документы, повторяющиеся из запроса в запрос, не должны тарифицироваться по полной ставке каждый вызов. Кеширование промптов обычно даёт самый крупный выигрыш и не требует менять поведение продукта — только порядок сборки промпта: кешируемая часть должна идти первой и оставаться байт в байт неизменной.
Поставьте жёсткий потолок на циклы агента. Лимит шагов, лимит по времени и лимит стоимости на запрос. Агент без бюджета — это программа без базового случая.
Перестаньте пересылать то, что модели не нужно. Сжимайте старые ходы, выбрасывайте результаты инструментов, по которым уже приняты решения, и держите рабочий набор, а не стенограмму.
Маршрутизируйте по сложности. Большинство запросов в типичном продукте — простые. Отправлять их все в самую крупную модель — то же самое, что гнать каждый запрос через самый медленный путь исполнения из-за того, что часть запросов сложные.
Явно ограничивайте вывод. Просите нужный формат и задавайте потолок длины. «Ответь одним предложением» — это оптимизация расходов.
Часть, которая вообще не про токены
Заметная доля расходов на языковые модели в проде — это не модель, а то, что функцию спроектировали с вызовом модели там, где он не нужен. Классификация, с которой справляется регулярное выражение. Извлечение данных из документа, у которого уже есть структурированные метаданные. Суммаризация текста, который пользователь и так собирается прочитать.
Самый дешёвый токен — тот, который вы не отправили. Это продуктовое решение, принимаемое на этапе постановки задачи, и стоит оно больше, чем все оптимизации уровня промпта вместе взятые.
Читать дальше
Резолюция — самая сложная часть рынка прогнозов
Внимание достаётся ордербуку, но доверие к рынку прогнозов определяет то, что закрывает исход. Разбор того, как резолюция ломается на самом деле.
ИИ сломал постквантовую подпись за 60 часов. Проблема не в подписи
Схема HAWK пережила два года экспертной проверки и не пережила выходные с моделью Anthropic. Какое допущение это ломает в вашей архитектуре.
Что сделать за две недели до аудита смарт-контракта
Аудиторы берут деньги за время, и большая часть уходит на то, что можно отдать сразу. Как подготовить базу, чтобы аудит искал баги, а не контекст.