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

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
Поддержать проект