Production и облако · Production and cloud · урок 8 · 13 мин

Метрики AI-ассистента в production

Production metrics for an AI assistant

ТемыProductionEvals

Зачем

После урока ты поставишь целевые метрики AI-ассистенту в production: безопасность, польза, техническое качество, стоимость и удовлетворённость — с числом, способом измерения и парной метрикой, которая не даёт цифру подделать. Это вопросы «how do you know the assistant is working?» и «what would you put on the launch dashboard?», где ответ «accuracy» сразу выдаёт человека без production-опыта.

Пять групп целей

В докладе AI-команды одного крупного банка о запуске ассистента цели заданы так: безопасность — 100 %, полезность — 90 %, плюс техническое качество, стоимость LLM на одного пользователя и like ratio (доля оценок «нравится» среди всех оценок). Это хороший каркас, потому что он сразу говорит, что метрик несколько и у каждой своя планка.

Группа Пример цели Как мерить Кто мерит
Безопасность 100 % на наборе проверки безопасности детерминированные проверки + judge код, judge, люди на выборке
Полезность 90 % ответов решают задачу judge по рубрике, проверка по golden set judge, сверенный с людьми
Техническое качество p95 latency, доля ошибок metrics и traces код
Стоимость $ LLM на пользователя в месяц tokens из traces × цена код
Удовлетворённость like ratio, жалобы оценки в интерфейсе пользователи

Правило выбора измерителя из модуля про evaluation: чёткое правило — код; размытый смысл — judge-модель; качество самого judge — люди.

Почему безопасность 100 %, а польза 90 %

Ошибки неравны. Неполезный ответ стоит одного недовольного клиента, который переспросит или позовёт оператора. Небезопасный — назвал чужой баланс, пообещал отменить комиссию, дал инвестиционный совет — стоит денег, штрафа или новостей. Поэтому планка разная.

Но «100 %» здесь значит конкретное: 100 % на наборе проверки безопасности — подобранных случаях, где ассистент обязан отказать или ответить строго по правилам. Это не обещание нуля в production. Правило трёх: 0 нарушений в 300 разных попытках даёт с уверенностью 95 % только «частота ниже ~1 %», а для «ниже 0,1 %» нужно 3 000. Значит, «никогда» обеспечивает дизайн — права tools, подтверждения, минимум данных в ответе, — а набор проверяет, что дизайн работает, и ловит регрессии.

Набор безопасности и golden set — разные вещи

Golden set (эталонный набор) — представительная выборка настоящих задач с эталонными ответами: «сколько стоит перевод в евро», «как перевыпустить карту». Он отвечает на вопрос «полезен ли ассистент на обычном трафике» и даёт те самые 90 %.

Набор проверки безопасности — состязательный: попытки prompt injection, вопросы о чужих данных, провокации на запрещённые темы, слова из стоп-списков. Он намеренно непредставителен: таких запросов в трафике мало, а проверять их нужно все. В докладе он пополняется из инцидентов: каждый случай из production, где что-то пошло не так, становится новой строкой набора.

Оба набора — ворота в CI (урок a7-3): изменение не выходит, если безопасность ниже 100 % на наборе или польза упала ниже порога. И оба считают по языкам и сегментам.

Как мерить полезность, чтобы 90 % что-то значили

Полезность — размытое понятие, поэтому её мерит judge-модель по рубрике. Рубрика разбивает «полезно» на проверяемые вопросы: ответил ли ассистент именно на заданный вопрос, совпадают ли факты с документами, может ли клиент сделать следующий шаг. Каждый вопрос — да или нет, без шкалы 1–10: бинарные оценки judge ставит стабильнее.

Прежде чем верить judge, его сверяют с людьми: двое людей размечают 100–200 ответов, judge размечает те же, и смотрят согласие (κ) и recall на плохих ответах. Если judge расходится с людьми, его 90 % ничего не стоят.

И разброс. На golden set из 200 задач при доле 90 % стандартная ошибка равна √(0,9 × 0,1 / 200) ≈ 2,1 пункта, а 95-процентный интервал — около ±4 пунктов. Значит, 88 % и 91 % на двух версиях — не разница. Версии сравнивают на одних и тех же задачах и смотрят, какие задачи поменяли результат.

Online-метрики: что видно только после запуска

Offline-наборы не видят настоящих клиентов. После выпуска добавляются: - containment (доля решённых без человека); - escalation rate (доля передач оператору); - repeat contact за 48 часов — клиент вернулся с тем же вопросом, значит, первый ответ не помог; - жалобы; - ручная выборка разговоров раз в неделю.

Каждую метрику держат в паре с той, что ловит её подделку. Containment легко поднять, если ассистент просто не отпускает к оператору. Поэтому рядом стоят repeat contact и жалобы. Like ratio страдает от смещения выборки: оценку ставит малая и нетипичная часть пользователей, чаще всего очень довольные или очень злые. Он годится как сигнал тренда, но не как мерило полезности.

Пример с числами

За неделю 10 000 разговоров. Без оператора закрыто 7 200 — containment 72 %. Но 900 из этих 7 200 клиентов вернулись с тем же вопросом в течение 48 часов. Честный containment: (7 200 − 900) / 10 000 = 63 %. Разница в 9 пунктов — разговоры, которые выглядели решёнными, но не были.

Стоимость на пользователя (цены — допущение для примера: $1 за 1 млн input tokens и $5 за 1 млн output tokens). Пользователь в месяц ведёт 3 разговора по 6 реплик; каждая реплика — 4 000 tokens на входе (история, документы RAG) и 300 на выходе. Input: 3 × 6 × 4 000 = 72 000 tokens → $0,072. Output: 3 × 6 × 300 = 5 400 tokens → $0,027. Итого около $0,10 на пользователя в месяц. Видно, что дорогой здесь вход, а не выход: сокращение контекста RAG с 4 000 до 2 000 tokens сэкономит больше, чем сокращение ответов вдвое. Реальные цены берутся со страницы поставщика в день расчёта.

Как собрать это в один dashboard

Верхняя строка — цели с планкой и текущим значением: безопасность на наборе, польза на golden set, честный containment, p95 latency, $ на пользователя. Под каждой — срез по языку, каналу и версии выпуска. Alerts (оповещения) — на нарушения безопасности (любое) и на резкие сдвиги остальных метрик относительно прошлой недели. А раз в неделю — чтение разговоров людьми: метрики говорят, что изменилось, разговоры объясняют почему.

Схема

Термины · Key terms

golden set
представительная выборка настоящих задач с эталонными ответами
safety test set
состязательный набор случаев, где ассистент обязан отказать или ответить по правилам
containment rate
доля разговоров, решённых без оператора
escalation rate
доля разговоров, переданных человеку
repeat contact
повторное обращение с тем же вопросом в заданное окно, например 48 часов
like ratio
доля оценок «нравится» среди всех оценок
counter-metric
парная метрика, которая ловит подделку основной
cost per user
стоимость вызовов модели на одного пользователя за период
LLM-as-judge
модель, которая оценивает ответы по рубрике
rule of three
0 событий в n попытках даёт верхнюю границу частоты около 3/n

Сделай сам

Таблица из пяти строк для агента поддержки банка: метрика, целевое число, способ измерения (код, judge или люди) и парная метрика против подделки. Строки: безопасность, полезность, честный containment, p95 latency, стоимость на пользователя. Одной строкой под таблицей: как в твоей схеме инцидент из production попадает в набор безопасности.

Обсуди с тьютором: покажи таблицу и спроси, как ты докажешь руководству, что 90 % полезности — это не шум, если в golden set 200 задач.

Проверь себя · ответ под вопросом

1Почему цель по безопасности — 100 %, а по полезности — 90 %?
Цена ошибок разная: неполезный ответ стоит переспроса, небезопасный — денег, штрафа или репутации. При этом 100 % — это результат на подобранном наборе безопасности, а не обещание нуля в production. Ноль в production обеспечивает дизайн прав и подтверждений, набор проверяет, что дизайн работает.
2Как набор проверки безопасности соотносится с golden set?
Golden set представителен: обычные задачи с эталонами, он меряет полезность. Набор безопасности состязателен: атаки, чужие данные, стоп-слова, и пополняется из инцидентов. Оба — ворота в CI, оба считают по языкам и сегментам.
3Какие online-метрики ты добавишь к offline-наборам и почему парами?
Containment, escalation rate, repeat contact за 48 часов, жалобы и еженедельную ручную выборку. Парами — потому что одну метрику легко улучшить во вред клиенту: containment растёт, если не отпускать к оператору. Repeat contact и жалобы показывают, был ли вопрос решён на самом деле.

Interview questions · US / UK

1What metrics would you put on the launch dashboard for a customer-support assistant, and with what targets?
Strong answer: safety at 100% on a curated adversarial set, helpfulness around 90% on a golden set via a validated judge, p95 latency and error rate, cost per user, satisfaction; each with a measurement method and a counter-metric; sliced by language, channel and release version.
2Containment went from 65% to 78% after a release. Is that good news?
Strong answer: not yet; check repeat contact within 48 hours, complaints and escalation paths; the assistant may be blocking handoffs; compute honest containment net of repeat contacts; read a sample of the newly contained conversations; compare per segment against the stable version.
3Your safety suite passes at 100%. Can you tell the risk committee the assistant will never leak customer data?
Strong answer: no; zero in n tries bounds the rate at about 3/n; "never" comes from design: identity from the session, minimal fields from tools, confirmations, egress rules; the suite verifies the design and catches regressions; grow it from incidents and red-teaming.

Ключевые фразы · Say it aloud

Материалы