Что такое «cost per good answer» и как его измерять?

Краткий тезис

Cost per good answer (CPGA) — это бизнес-ориентированная метрика, которая оценивает среднюю стоимость одного качественного ответа системы. В отличие от cost per request (стоимость одного запроса), CPGA учитывает не только прямые затраты на LLM и инфраструктуру, но и то, насколько ответ верен фактологически (faithfulness). Главная идея: дешёвый неправильный ответ обходится дороже, чем дорогой правильный, потому что подрывает доверие пользователей и требует ручной верификации. CPGA вычисляется как отношение общих затрат на LLM за период к количеству ответов, чья faithfulness превышает заданный порог (обычно >0.9).


1. Термин: Cost per good answer (CPGA)

Cost per good answer — это метрика, которая объединяет экономику и качество. Она отвечает на вопрос: «сколько в среднем стоит один ответ, который мы считаем хорошим?».

Формула:

CPGA = (общие затраты на LLM за период) / (количество ответов с faithfulness > 0.9)

Компоненты

  • Общие затраты на LLM — включают стоимость вызовов API, затраты на хостинг открытых моделей (GPU, вычислительные ресурсы), а также затраты на этапы retrieval (векторные БД, эмбеддинги) и постобработку.
  • Количество хороших ответов — число ответов, прошедших порог по метрике faithfulness (верность фактам, извлечённым из предоставленного контекста).

Сущность CPGA метрика заставляет команды балансировать между дешевизной (слабая модель, мало контекста) и качеством (дорогая LLM, много контекста, итеративные уточнения). Если снижать cost per request за счёт ухудшения faithfulness, CPGA может вырасти, потому что доля «плохих» ответов увеличится.


2. Почему не cost per request?

Cost per request (CPR) — самая простая метрика, но она игнорирует качество. Основные недостатки:

МетрикаЧто учитываетЧто игнорируетРиск оптимизации
Cost per requestСтоимость одного вызова (токены, API)Корректность, релевантность, faithfulnessВыбрать маленькую модель → ответы галлюцинируют, пользователи уходят
Cost per good answerСтоимость + качество (faithfulness)------

Пример: система на GPT-3.5-turbo стоит $0.0015 за запрос, но faithfulness 0.6 (60% ответов фактологически верны). Дорогая система на GPT-4 стоит $0.03 за запрос, faithfulness 0.95. CPR дешевле в 20 раз, но CPGA может оказаться одинаковым: если считать CPGA = затраты / хорошие ответы, то для GPT-3.5 хороших ответов в 1.58 раза меньше (0.6 против 0.95), поэтому реальный выигрыш по CPGA меньше. А с учётом потери репутации и дополнительных ручных проверок GPT-3.5 может оказаться дороже.

Вывод cost per request — метрика-вредитель, если не сопровождать её контролем качества. CPGA — более честная метрика для бизнеса.


3. Как измерять CPGA? Компоненты и этапы

Для измерения CPGA нужно:

  1. Аккумулировать логи всех ответов системы.
  2. Для каждого ответа вычислить faithfulness score — оценку того, насколько утверждения в ответе соответствуют переданному контексту (документам).
  3. Задать порог faithfulness threshold (например, 0.9).
  4. Подсчитать количество ответов, score которых >= порога.
  5. Разделить суммарные затраты на LLM за период на это количество.

Формула более детально

CPGA = (Σ(cost_i) за период) / (count(answer_i) где faithfulness_i > threshold)

Cost_i включает:

  • Стоимость токенов (input + output) для LLM.
  • Стоимость retrieval (эмбеддинг запроса и документов, поиск в векторной БД).
  • Стоимость дополнительных LLM-вызовов для оценки faithfulness (если используется LLM-as-Judge).

4. Определение faithfulness: как измерять

Faithfulness (верность фактам) — метрика, оценивающая, насколько утверждения в ответе LLM подтверждаются предоставленным контекстом (золотыми документами). В контексте RAG это означает, что ответ не должен содержать галлюцинаций — информации, которой нет в документе.

Способы измерения

  1. Человеческая оценка (золотой стандарт) — expensive, медленно, не масштабируется.
  2. LLM-as-Judge — автоматическая оценка с помощью LLM (например, GPT-4). Даём промпт: «Определи, верно ли каждое утверждение ответа согласно контексту». Считаем долю верных утверждений.

Пример промпта для оценки faithfulness:

Контекст: {документы}
Ответ: {ответ}
Проверь каждое утверждение в ответе. Если утверждение можно подтвердить контекстом, поставь 1, иначе 0.
Вычисли faithfulness = (количество верных утверждений) / (всего утверждений).
  1. Библиотеки: RAGAS, DeepEval, TruLens — предоставляют встроенные метрики faithfulness.

Пороги

  • 0.9 — отлично (допускается минимальная погрешность).

  • 0.8–0.9 — приемлемо для некритичных доменов.
  • < 0.8 — сигнал к улучшению (проблемы с retrieval или генерацией).

5. Настройка порога faithfulness под домен

Порог 0.9 — хорошее стартовое значение, но его нужно адаптировать:

ДоменРекомендуемый порогПричина
Медицина, юриспруденция, финансы0.95–1.0Высокая цена ошибки
Customer support0.85–0.9Допустимы незначительные неточности при быстром решении
Креативные задачи (генерация текстов)0.7–0.8Верность фактам менее критична
Внутренние аналитические дашборды0.9Ошибки могут влиять на выводы

Метод определения порога проанализировать бизнес-метрики (удержание пользователей, количество эскалаций) при разных порогах и выбрать точку, где CPGA минимизируется при сохранении приемлемого качества.


6. Мониторинг CPGA в продакшене

CPGA должна отслеживаться ежедневно и сопровождаться алертами:

  • Базовый уровень (baseline): рассчитывается за первую неделю стабильной работы.
  • Алерт при росте >20% относительно скользящего среднего за 7 дней. Рост может быть вызван:
    • Падением faithfulness (галлюцинации) → меньше хороших ответов.
    • Увеличением стоимости (смена модели, рост трафика).
    • Изменением порога в большую сторону.
  • Дэшборд: график CPGA, CPGA/CPR, доля хороших ответов, средний faithfulness.

Пример настройки алерта (Prometheus + Grafana):

rules:
  - alert: CPGASpike
    expr: "cpga / avg(cpga[7d]) > 1.2"
    for: 1h
    labels:
      severity: critical
    annotations:
      summary: "CPGA вырос более чем на 20% за последний час"

7. Оптимизация: target CPGA, а не minimisation cost per request

Главный принцип: целевая оптимизация CPGA — мы не минимизируем саму стоимость вслепую, а подбираем конфигурацию, дающую наименьший CPGA.

Что можно менять для уменьшения CPGA:

  1. Модель LLM: тестировать разные модели (GPT-4o, Claude Sonnet, Llama 3.3). Более дорогая модель может давать faithfulness ~0.98 против 0.85 у дешёвой, и CPGA снизится.
  2. Параметры retrieval: количество чанков k. Больше чанков → больше контекста → выше faithfulness, но дороже. Найти оптимальное k, где CPGA минимален.
  3. Ранжирование (reranking): добавляет задержку и стоимость, но может поднять faithfulness за счёт исключения нерелевантных чанков.
  4. Prompt engineering: чёткие инструкции уменьшают галлюцинации без смены модели.
  5. Agentic loops: в Agentic RAG агент может перезапрашивать контекст, что увеличивает CPR, но повышает faithfulness. Нужно оценить, улучшает ли это CPGA.

Метрика для сравнения строим кривую «faithfulness vs cost», выбираем точку с минимальным CPGA.


8. Влияние архитектуры Agentic RAG на CPGA

В Agentic RAG агент может выполнять несколько действий (уточняющие запросы, вызов инструментов, итеративное планирование), что увеличивает число LLM-вызовов на один финальный ответ. CPGA в такой системе:

  • Прямая составляющая: больше вызовов → выше общие затраты.
  • Косвенная составляющая: качество ответа может вырасти (выше faithfulness), что увеличит количество «хороших» ответов.

Формула CPGA для Agentic RAG

CPGA_agent = (Σ(cost_всех_шагов_агента)) / (количество финальных ответов с faithfulness > 0.9)

Риск если агент делает много ненужных циклов, CPGA растёт. Нужно ввести ограничение на число шагов и триггер преждевременной остановки (например, если агент уверен в ответе).

Лучшая практика профилировать каждый агентский паттерн (ReAct, Plan-and-Execute) по CPGA на бенчмарке, чтобы выбрать экономически эффективную архитектуру.


9. Сравнение CPGA с другими метриками

МетрикаФормулаКогда использоватьОграничения
Cost per requestTotal cost / #requestsОценка бюджетаНе учитывает качество
Cost per good answerTotal cost / #good_answersБизнес-оценка эффективностиТребует автоматической оценки faithfulness
Cost per correct answerTotal cost / #correct_answers (ручная проверка)Золотой стандарт для валидацииНевозможен в реальном времени
ROI (Return on Investment)(Profit – Cost) / CostСтратегическое планированиеНужна оценка дохода от каждого ответа

CPGA — компромисс: он не требует ручной разметки (если faithfulness оценивается LLM) и даёт количественную оценку экономики качества.


10. Пример расчёта CPGA на данных

Дано за день система обработала 10 000 запросов. Стоимость одного запроса (токены + retrieval) = $0.005. LLM-as-Judge стоит $0.002 на запрос. Faithfulness оценён для каждого ответа. Порог 0.9.

  • Общие затраты 10 000 * ($0.005 + $0.002) = $70.
  • Количество хороших ответов faithfulness > 0.9 у 7 500 ответов.

CPGA = $70 / 7 500 ≈ $0.0093

Сравнение с оптимизацией заменили модель на более дешёвую: стоимость запроса упала до $0.003, faithfulness — до среднего 0.75, хороших ответов стало 4 000. CPGA = (10 000 * ($0.003+$0.002)) / 4 000 = $50 / 4 000 = $0.0125 — дороже.


11. Бизнес-контекст и ROI

CPGA напрямую влияет на юнит-экономику продукта. Полезно связать её с Customer Lifetime Value (CLV). Если CPGA выше, чем CLV на один диалог, продукт убыточен.

Метрики для отчёта

  • CPGA по сегментам пользователей (бесплатные / платные).
  • CPGA по типам запросов (сложные аналитические vs простые FAQ).
  • Тренд CPGA во времени — падение может указывать на деградацию качества (тихий рост галлюцинаций).

Рекомендация устанавливать SLO (Service Level Objective) по CPGA, например, не более $0.01 для бесплатного тарифа и не более $0.05 для премиума, при faithfulness >0.9.


Пет-проект для закрепления

Задача реализовать симулятор RAG-системы, который для разных конфигураций (модели, k retrieval, порог faithfulness) рассчитывает CPGA и находит оптимальную.

Инструменты Python, LangChain (для построения RAG-пайплайна), RAGAS (для faithfulness), openai/библиотека для вызова LLM, пандас для анализа.

Шаги:

  1. Создайте датасет из 100 запросов и золотого контекста (например, из Wikipedia).
  2. Реализуйте RAG-пайплайн с конфигурируемыми параметрами: модель (gpt-3.5-turbo / gpt-4o-mini), k чанков (3, 5, 10).
  3. Для каждой конфигурации запустите обработку всех запросов, записывайте стоимость каждого вызова (используйте response.usage).
  4. Оцените faithfulness для каждого ответа с помощью LLM-as-Judge (другая модель, чтобы избежать смещения).
  5. Рассчитайте CPGA для каждой конфигурации.
  6. Постройте таблицу и график зависимости CPGA от параметров. Найдите конфигурацию с минимальным CPGA.

Ожидаемый результат вы научитесь видеть, что самая дешёвая модель не всегда даёт лучший CPGA, и сможете обосновать выбор архитектуры с точки зрения бизнеса.


Связь с другими вопросами

ВопросТема
770Что такое Agentic RAG?
771Как агент планирует действия в Agentic RAG?
775Как оценивать агентов в RAG?
776Как оценивать стоимость агентских вызовов LLM?
778Как балансировать автономию и контроль над агентами?
780Какие метрики качества ответа в RAG вы знаете?

Навигация