Контроль стоимости
LLM-функция, которая «просто работает», может незаметно сжечь бюджет. Контроль расходов — часть инженерии.
Стоимость = (входные токены × цена входа) + (выходные токены × цена выхода), помноженное на число запросов. Снижать можно каждый множитель.
Четыре главных рычага
- Выбор модели. Не гоните всё через топовую модель. Простые задачи — на дешёвую/быструю. Это часто крупнейшая экономия.
- Меньше токенов. Сокращайте лишний контекст, обрезайте историю, не просите многословных ответов без нужды (
max_tokens, инструкция «коротко»). - Кэширование. Повторяющийся префикс — в кэш (см. раздел 5), до ~90% экономии на нём.
- Batch. Массовую оффлайн-обработку — в batch со скидкой.
Расчёт затрат по моделям (запускаемо)
Посмотрим, как выбор модели меняет счёт на одном и том же объёме. Чистый Python:
# Цены — пример: $ за 1M токенов (вход, выход)
PRICES = {
"opus": (5.0, 25.0),
"sonnet": (3.0, 15.0),
"haiku": (1.0, 5.0),
}
def cost(model, in_tok, out_tok):
pin, pout = PRICES[model]
return in_tok / 1_000_000 * pin + out_tok / 1_000_000 * pout
# 50000 запросов, по 800 входных и 200 выходных токенов
n = 50_000
in_tok, out_tok = 800, 200
for model in ("opus", "sonnet", "haiku"):
total = cost(model, in_tok, out_tok) * n
print(f"{model:6} -> ${total:.2f}")
Вывод:
opus -> $450.00 sonnet -> $270.00 haiku -> $90.00
Одна и та же задача стоит впятеро дешевле на быстрой модели. Если она справляется с качеством — это прямая экономия.
Маршрутизация по сложности
Частый приём — двухуровневая система: дешёвая модель решает простые случаи и классифицирует сложные, а тяжёлая подключается только к сложным. Так платите за дорогую модель лишь там, где она реально нужна.
Наблюдайте за расходами
- Логируйте
usageкаждого запроса (см. урок про наблюдаемость) и считайте стоимость. - Ставьте лимиты/алерты на дневные траты у провайдера.
- Следите за «дорогими» запросами: гигантский контекст, длинные ответы, повторы.
Итог
- Главные рычаги: модель, токены, кэш, batch.
- Дешёвая модель на простых задачах — обычно крупнейшая экономия.
- Маршрутизируйте по сложности и следите за расходами через логи
usage.
Проверьте себя
1. Какой рычаг контроля стоимости часто даёт крупнейшую экономию?
AУвеличение temperature
BВыбор более дешёвой/быстрой модели для простых задач вместо топовой для всего
CОтключение логирования
DУдлинение системного промпта
2. Что такое маршрутизация по сложности?
AСлучайный выбор модели
BДешёвая модель решает простые случаи, а тяжёлая подключается только к сложным
CОтправка всех запросов в batch
DЗапрет на использование инструментов
3. Зачем логировать usage каждого запроса для контроля стоимости?
AЧтобы ускорить ответы
BЧтобы считать фактические затраты, находить дорогие запросы и ставить алерты
CЭто требование протокола HTTP
DЧтобы обойти rate limits