Контроль стоимости

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Отправка всех запросов в batch
CДешёвая модель решает простые случаи, а тяжёлая подключается только к сложным
DЗапрет на использование инструментов
3. Зачем логировать usage каждого запроса для контроля стоимости?
AЧтобы ускорить ответы
BЭто требование протокола HTTP
CЧтобы обойти rate limits
DЧтобы считать фактические затраты, находить дорогие запросы и ставить алерты