English translation is not available yet. Showing Russian content.
Что такое «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 нужно:
- Аккумулировать логи всех ответов системы.
- Для каждого ответа вычислить faithfulness score — оценку того, насколько утверждения в ответе соответствуют переданному контексту (документам).
- Задать порог faithfulness threshold (например, 0.9).
- Подсчитать количество ответов, score которых >= порога.
- Разделить суммарные затраты на 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 это означает, что ответ не должен содержать галлюцинаций — информации, которой нет в документе.
Способы измерения
- Человеческая оценка (золотой стандарт) — expensive, медленно, не масштабируется.
- LLM-as-Judge — автоматическая оценка с помощью LLM (например, GPT-4). Даём промпт: «Определи, верно ли каждое утверждение ответа согласно контексту». Считаем долю верных утверждений.
Пример промпта для оценки faithfulness:
Контекст: {документы}
Ответ: {ответ}
Проверь каждое утверждение в ответе. Если утверждение можно подтвердить контекстом, поставь 1, иначе 0.
Вычисли faithfulness = (количество верных утверждений) / (всего утверждений).
- Библиотеки: RAGAS, DeepEval, TruLens — предоставляют встроенные метрики faithfulness.
Пороги
-
0.9 — отлично (допускается минимальная погрешность).
- 0.8–0.9 — приемлемо для некритичных доменов.
- < 0.8 — сигнал к улучшению (проблемы с retrieval или генерацией).
5. Настройка порога faithfulness под домен
Порог 0.9 — хорошее стартовое значение, но его нужно адаптировать:
| Домен | Рекомендуемый порог | Причина |
|---|---|---|
| Медицина, юриспруденция, финансы | 0.95–1.0 | Высокая цена ошибки |
| Customer support | 0.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:
- Модель LLM: тестировать разные модели (GPT-4o, Claude Sonnet, Llama 3.3). Более дорогая модель может давать faithfulness ~0.98 против 0.85 у дешёвой, и CPGA снизится.
- Параметры retrieval: количество чанков
k. Больше чанков → больше контекста → выше faithfulness, но дороже. Найти оптимальноеk, где CPGA минимален. - Ранжирование (reranking): добавляет задержку и стоимость, но может поднять faithfulness за счёт исключения нерелевантных чанков.
- Prompt engineering: чёткие инструкции уменьшают галлюцинации без смены модели.
- 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 request | Total cost / #requests | Оценка бюджета | Не учитывает качество |
| Cost per good answer | Total cost / #good_answers | Бизнес-оценка эффективности | Требует автоматической оценки faithfulness |
| Cost per correct answer | Total 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, пандас для анализа.
Шаги:
- Создайте датасет из 100 запросов и золотого контекста (например, из Wikipedia).
- Реализуйте RAG-пайплайн с конфигурируемыми параметрами: модель (gpt-3.5-turbo / gpt-4o-mini), k чанков (3, 5, 10).
- Для каждой конфигурации запустите обработку всех запросов, записывайте стоимость каждого вызова (используйте
response.usage). - Оцените faithfulness для каждого ответа с помощью LLM-as-Judge (другая модель, чтобы избежать смещения).
- Рассчитайте CPGA для каждой конфигурации.
- Постройте таблицу и график зависимости CPGA от параметров. Найдите конфигурацию с минимальным CPGA.
Ожидаемый результат вы научитесь видеть, что самая дешёвая модель не всегда даёт лучший CPGA, и сможете обосновать выбор архитектуры с точки зрения бизнеса.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 770 | Что такое Agentic RAG? |
| 771 | Как агент планирует действия в Agentic RAG? |
| 775 | Как оценивать агентов в RAG? |
| 776 | Как оценивать стоимость агентских вызовов LLM? |
| 778 | Как балансировать автономию и контроль над агентами? |
| 780 | Какие метрики качества ответа в RAG вы знаете? |
Навигация
- Предыдущий: 776
- Следующий: 778
- Индекс: 00. Индекс разборов