awesome-everything EN
↑ Обратно к восхождению

AI / LLM

LLM cost budgets: код и cost-арифметика

Суть Читай реальный код учёта token и ценовую арифметику, предсказывай расход и выбирай фикс с наибольшим рычагом — cost-арифметика, per-tenant budget, routing и cache savings.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 14 min

Cost-инциденты диагностируются в счётчиках token и ценовой математике, а не в прозе. Прочитай код и числа, затем выбери фикс, который senior-инженер сделает первым.

Цель

Отработай цикл, который ты запускаешь на каждом скачке расходов: прочитай место вызова, посчитай per-token арифметику в уме, найди, где утекает budget, и потянись за фиксом с наибольшим рычагом раньше, чем поднимешь любой cap.

Сниппет 1 — per-turn cost-арифметика

// Sonnet 4.6: $3 / 1M вход, $15 / 1M выход
const PRICE = { in: 3 / 1e6, out: 15 / 1e6 };

// сессия на 50 ходов, system prompt на 4000 token повторно каждый ход,
// history растёт ~600 token/ход, каждый ответ ~400 output token.
let inputTotal = 0;
for (let turn = 1; turn <= 50; turn++) {
  const history = 600 * (turn - 1);
  inputTotal += 4000 + history;        // system prompt + накопленный history
}
const outputTotal = 50 * 400;
const cost = inputTotal * PRICE.in + outputTotal * PRICE.out;
Викторина

Какое утверждение о стоимости этой сессии верно?

Сниппет 2 — per-tenant budget enforcement

async function callModel(tenantId: string, req: Request) {
  const spent = await budget.getMonthlySpend(tenantId);   // async-чтение
  if (spent >= LIMIT[tenantId]) throw new BudgetExceeded();
  const res = await llm.create(req);                        // биллит token
  await budget.add(tenantId, costOf(res));                  // запись после
  return res;
}
Викторина

У этого per-tenant budget-гарда есть дефект, который вскроет всплеск конкурентных запросов. Какой и в чём фикс?

Сниппет 3 — решение о model routing

// Haiku $1/$5, Opus $5/$25 (за 1M вход/выход). Средняя задача: 1k вход, 500 выход.
const opusOnly = 1000 * 5/1e6 + 500 * 25/1e6;             // сразу на Opus
// Cascade: сначала Haiku; при провале платим ещё и Opus. p = escalation rate.
function cascade(p) {
  const haiku = 1000 * 1/1e6 + 500 * 5/1e6;
  const opus  = 1000 * 5/1e6 + 500 * 25/1e6;
  return haiku + p * opus;                                  // Haiku платим всегда
}
Викторина

opusOnly ≈ $0.0175/задача. При каком escalation rate p cascade перестаёт экономить деньги?

Сниппет 4 — расчёт cache savings

// Anthropic: cache read = 0.1x базового входа; 5-мин write = 1.25x базового входа.
// Стабильный префикс = 10 000 token, базовый вход $3/1M, переиспользуется N ходов.
function prefixCost(N: number, cached: boolean) {
  const base = 10000 * 3/1e6;                 // полноценная отправка
  if (!cached) return N * base;               // повторно каждый ход
  const write = 10000 * (3 * 1.25)/1e6;       // одна cache write
  const read  = 10000 * (3 * 0.1)/1e6;        // каждая cache read
  return write + (N - 1) * read;
}
Викторина

Для префикса на 10 000 token, переиспользуемого 50 ходов, сколько примерно экономит caching и когда окупается?

Итог

Каждое cost-решение читается в счётчиках и арифметике: повторно отправляемый префикс плюс растущий history делают долгую сессию квадратичной по входу; per-tenant budget-гард должен быть атомарным (reserve/commit) и в паре с per-request cap, иначе гонки конкурентности пробьют лимит; cascade Haiku→Opus экономит лишь пока escalation rate низок (cost break-even ~0.8, операционный алярм ~30%); а prompt-кэширование префикса 10k за 50 ходов режет ~88% и окупается на первом попадании. Сначала посчитай, затем чини самый большой член — обычно повторно отправляемый context — раньше, чем тронешь cap.

Продолжить восхождение ↑LLM cost budgets: построй cost observability и гардрейлы
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.