AIRUS ProductionFeedbackOps · Online Evaluation
Рынок хорошо измеряет запросы, токены, uptime и расходы. AIRUS занимает слой выше — Production Outcome Intelligence: результат принят? пользователь исправил его? ошибка повторяется? workflow создал value? Модель может продолжать отвечать 200 OK и уже портить продукт.
Статический Golden Set описывает прошлое
оффлайн-тесты (ModelEvaluationOps) → модель прошла release gate → релиз но production меняется каждый день: новые пользователи → новые формулировки → новые документы → новый retrieval detect → diagnose → sample → verify → restrict → correct → add regression case raw feedback НЕ меняет production напрямую (сигнал для расследования, не команда)
Пользователь чаще не нажимает 👎 — он переписывает ответ, повторяет запрос, переключает модель, возвращается в Excel. Формально feedback нет; фактически продукт получил четыре красных сигнала.
Честная граница: live vs computed vs roadmap
live_measured — реальные таблицы
first-pass-live агрегирует РЕАЛЬНУЮ таблицу quality_feedback (thumbs/success/corrected по request_id из /v1/airus/evals/feedback) и usage_events. Нет success-фидбека → success_rate NULL, не 100%.
computed — из переданной телеметрии
Drift-слайсы, outcomes, evidence — пересчитываются движками из сырья. Недомеренный slice → unmeasured; неизмеренный долг → не CONTROLLED.
план ≠ действие
Route restriction выдаёт рекомендованный переход с guardrails (может: снизить allocation, остановить canary; не может: обучаться на raw feedback, снимать security restriction). Применение к живому роутеру — roadmap.
ML/OTel — честный roadmap
Embedding/intent/failure clustering, Monium/OTel trace-linking, delayed outcome linking — заявлены как roadmap, не фейкуются правилами.
Движки
Production Signal Bus (schema)
Единая событийная модель: request_completed / auto_score / user_corrected / human_overrode / support_case / business_outcome / route_restricted — каждый сигнал связан с request_id. Сигнал = событие для расследования, НЕ команда менять production. Кнопка «не нравится» не переписывает router.
Feedback Hierarchy + Strength
Сила evidence: business outcome (1.0) > экспертная correction (0.9) > override с причиной (0.85) > downstream validation (0.7) > retry (0.5) / abandonment (0.45) > thumbs (0.2/0.15). Пусто → no_evidence: тишина не подтверждает качество (survivorship bias). Human acceptance ≠ абсолютная ground truth (automation bias).
Correction Diff Engine
«20 дней → 20 рабочих дней» — критичный quality signal. Field-level diff: money/date/numeric → C3, классификация/JSON/citation → C2, стиль → C1. Regression case (evaluator'ы из evalops-словаря) создаётся ТОЛЬКО после adjudication — эксперт тоже ошибается.
First-Pass / Retry (live)
Пять переформулировок = высокая активность в analytics и first-pass success 0 по факту. First-Pass Acceptance, Retry-to-Success, repair attempts, abandonment. live_measured: РЕАЛЬНАЯ агрегация таблицы quality_feedback + usage_events (coverage показывает, какая доля запросов вообще имеет фидбек).
Drift Taxonomy + Baselines
10 типов drift (input/intent/language/format/prompt/retrieval/model/tool/policy/cost) + attribution: вход изменился при прежней модели = data drift — не лечится откатом модели. 3 baseline-окна (long-term / recent stable / seasonal): сезонное отклонение не считается drift; alert всегда указывает окно расхождения; slice n<30 → unmeasured, не «здоров».
Active Sampling Engine
На human review идут не случайные 1%, а информативные кейсы: complaint (1.0), high-risk output, disagreement, new intent cluster, route divergence, low confidence, extreme cost. Active-learning подход ищет структурированные failure modes, а не бесконечно маркирует случайный трафик.
Feedback Integrity Score
Feedback можно отравить: массовый negative, ложные подтверждения, вытеснение дорогой модели. Факторы: роль, история точности, аномальный объём (×5 от типичного → дисконт), независимое подтверждение, evidence, коммерческий интерес. Quarantined-фидбек не попадает в drift-детект и golden set.
Safe Route Restriction
Статусы WATCH / SHADOW_ONLY / RESTRICTED_FOR_SLICE / RESTRICTED_FOR_CUSTOMER / GLOBAL_QUARANTINE. Blast radius: один документ ≠ глобальное отключение. Возврат: cooldown ≥6ч + пройденный regression + нет новых C3/C4 (hysteresis). ≥3 переходов/24ч → flapping-freeze. Движок выдаёт ПЛАН (plan_only) — raw feedback не меняет production.
Golden Set Lifecycle
Set без pruning за год: тысячи дублей, устаревшие policy, медленный CI. Статусы active/duplicate/stale/superseded/archived/contamination_risk; дубли по content_sha → merge; >180 дней без валидации → revalidate_or_retire; generated-кейсы → contamination review (автонакопление ухудшает качество).
Evaluation Debt
unlabelled high-risk события + stale critical cases + непокрытые intents + неразрешённые disagreements + непротестированные изменения + slices без baseline → CONTROLLED / GROWING / HIGH / RELEASE_FREEZE. Неизмеренный долг ≠ нулевой: без данных CONTROLLED недоступен (fail-closed).
Production Feedback Receipt
Период, live-метрики, drift alerts, restriction план, debt → canonicalize+sha256, seal-once по (tenant, request_id), verify-from-sealed. HEALTHY только при живых данных без alert'ов: из пустоты HEALTHY не бывает (NO_FEEDBACK_DATA).
Проверить решением
Публичный what-if: blast radius не даёт глобально отключить модель по локальной проблеме.
curl -sX POST https://airus.world/v1/airus/production-quality/route-restriction \
-H 'content-type: application/json' \
-d '{"current_state":"NORMAL","evidence":{"confirmed_signals":5,"raw_signals":20,"observations_in_window":100,"affected_scope":"single_document","hours_since_last_transition":24,"transitions_last_24h":0}}'
# → {"recommended_state":"WATCH", ...} (один документ ≠ GLOBAL_QUARANTINE)Тенант-путь /v1/airus/production-quality/evaluate собирает запечатанный Production Feedback Receipt. Смежное — Evaluation Factory, Verified Model Registry, Observability.