AIRUS ModelEvaluationOps · Evaluation Factory
Оффлайн-скоры и «прогнали пару примеров — вроде ок» не являются release-решением. Evaluation Factory отвечает на вопрос: какие проверки ОБЯЗАТЕЛЬНЫ для этого класса риска, пройдены ли они на реальных данных, стабилен ли результат между прогонами и сколько стоит принятый результат — и запечатывает вердикт.
Release-решение ≠ «на глаз лучше»
risk class → канонический набор гейтов (C0 минимум … C4 максимум) C2: deterministic + worst_slice + statistical + consistency C3: + judge_governed + cost_per_outcome C4: + human_signoff_persisted (серверная подпись; механизм = roadmap → BLOCKED) решение = AND(measured ∧ passed) по канону отсутствующий гейт → false declared → не засчитывается inconclusive → BLOCKED
Средний скор 95% может скрывать slice с 60%: гейт считает по худшему сегменту. Разница «candidate лучше на 2%» без доверительного интервала — шум: statistical gate требует CI, а не впечатление.
Честная граница: сырьё, не выводы
Tenant-путь /evaluate не принимает выводы («у нас judge калиброван») — только сырьё: пары judge-vs-expert, slices, выборки, прогоны. Гейты пересчитываются сервером. Реальные прогоны judge/human/benchmark — roadmap; их результаты не фейкается score-полем в теле.
Движки
Проверить решением
Публичный what-if: недомеренный slice блокирует сертификацию.
curl -sX POST https://airus.world/v1/airus/model-evaluation/worst-slice \
-H 'content-type: application/json' \
-d '{"slices":[{"slice":"typed_pdf","passed":95,"total":100},{"slice":"scanned_tables","passed":3,"total":5}],"threshold":0.85}'
# → {"status":"cannot_certify","gate_ok":false, ...} (slice n=5 < 20 — release по частичному покрытию запрещён)Тенант-путь /v1/airus/model-evaluation/evaluate пересчитывает гейты из сырья и запечатывает Evaluation Receipt (seal-once, verify-from-sealed). Смежное — Verified Model Registry, Eval Pack, ProviderGovernanceOps.