Артефакты отчёта о валидации
NextStat производит два типа артефактов валидации: Apex2 JSON-отчёты (доступно сейчас) и единый пакет отчёта о валидации (JSON + PDF) через nextstat validation-report.
Быстрый старт
# Сгенерировать JSON-отчёт о валидации
nextstat validation-report \
--apex2 tmp/apex2_master_report.json \
--workspace workspace.json \
--out validation_report.json \
--deterministic
# Также сгенерировать 7-страничный PDF (готов к аудиту)
nextstat validation-report \
--apex2 tmp/apex2_master_report.json \
--workspace workspace.json \
--out validation_report.json \
--pdf validation_report.pdf \
--deterministic
# Режим только JSON (без PDF, без зависимости от matplotlib)
nextstat validation-report \
--apex2 tmp/apex2_master_report.json \
--workspace workspace.json \
--out validation_report.json \
--deterministic
# Единая точка входа (Apex2 + JSON + PDF одной командой)
make validation-packСхема
Выходной файл соответствует схеме validation_report_v1. Получить схему можно так:
nextstat config schema --name validation_report_v1Структура отчёта
| Раздел | Содержимое |
|---|---|
| dataset_fingerprint | SHA-256 workspace JSON, число каналов/бинов/сэмплов, сводка наблюдений (total/min/max) |
| model_spec | POI, имена параметров/границы/constraints, коды интерполяции, цель, оптимизатор |
| environment | Версия NextStat, версия Python, платформа, toolchain Rust, версия pyhf, настройки детерминизма |
| apex2_summary | SHA-256 master report, статусы pass/fail по наборам, худшие дельты, общий вердикт |
| regulated_review | Примечания по данным, предназначение (intended use), область охвата, ограничения, матрица уверенности с учетом рисков (risk-based) |
Наборы валидации Apex2
Apex2 master runner агрегирует результаты всех наборов проверок в один детерминированный JSON:
| Набор | Что проверяет |
|---|---|
| pyhf | Паритет NLL и expected_data с pyhf в точках init/random/POI-varied |
| histfactory_golden | Детерминированная регрессия по заранее записанным эталонным значениям |
| regression_golden | Паритет коэффициентов/SE/NLL для OLS/logistic/Poisson/NegBin против R/statsmodels |
| survival | Контрактные тесты + паритет Cox PH со statsmodels (Efron/Breslow) |
| pharma_golden | Эталонные аналитические PK + smoke-тесты NLME-фита |
| timeseries | Валидация фильтра/сглаживателя Калмана и EM |
| nuts_quality | Гейты качества: divergence rate, R-hat, ESS, пороги E-BFMI |
| sbc | Simulation-based calibration: равномерность рангов (NUTS) |
| bias_pulls | Toy-ансамбли: проверка смещения μ̂ и ширины pull |
| root | 3-стороннее сравнение профильного скана (ROOT/RooFit vs pyhf vs NextStat) |
PDF-вывод (7 страниц)
- Обложка: версия схемы, общий pass/fail, флаг deterministic, SHA-256 workspace и Apex2
- Отпечаток набора данных: хеш workspace, каналы, число бинов, сводка наблюдений
- Спецификация модели: POI, таблица параметров, коды интерполяции, настройки оптимизатора
- Итоги Apex2: таблица pass/fail по наборам с худшими дельтами
- Окружение: версии NextStat/Python/pyhf, платформа, настройки детерминизма
- Регуляторный обзор: предназначение (intended use), область охвата, ограничения, уверенность с учетом рисков (risk-based)
- Футер: отметка о том, что отчет сформирован nextstat validation-report (OSS-эталон)
Для рендера PDF требуется matplotlib (установите через pip install "nextstat[viz]"). В режиме deterministic timestamp'ы в метаданных PDF закрепляются для воспроизводимого вывода.
Манифест и подпись
Пакет валидации создает validation_pack_manifest.json с SHA-256 хешами и размерами файлов для всех артефактов. Манифест удобен как индекс для репликации и (опционально) криптографической подписи.
- validation_pack_manifest.json: SHA-256 и размеры файлов для всех основных артефактов пакета
- Опционально: флаги --sign-openssl-key и --sign-openssl-pub создают подписи Ed25519
- Выводы: .sha256, .sha256.bin, .json.sig и (опционально) .pub.pem
- Проверка: openssl pkeyutl -verify -pubin -inkey ... -rawin -in ... -sigfile ...
# Подписать манифест Ed25519
bash validation-pack/render_validation_pack.sh \
--out-dir tmp/validation_pack \
--workspace workspace.json \
--deterministic \
--sign-openssl-key tmp/manifest_priv.pem \
--sign-openssl-pub tmp/manifest_pub.pemКому это нужно
- ФВЭ: сохранение анализа и готовность к переинтерпретации (RECAST / экосистема pyhf)
- Фарма: пакеты валидации IQ/OQ/PQ для поддержки регуляторных требований (21 CFR Part 11)
- FinTech: артефакты model risk management (SR 11-7 / SS1/23 model inventory)
Граница open-core
OSS-версия предоставляет validation_report.json (машиночитаемый, deterministic) и validation_report.pdf (рендер через matplotlib). Enterprise-расширения (коммерческая лицензия) могут добавить брендированные PDF-шаблоны, цифровые подписи, интеграцию audit trail и автоматическое планирование.
Как использовать для доверия
- Публикуйте validation_report.json и PDF для каждого tagged release (или еженедельно из CI)
- Давайте ссылки с: футера главной (Trust), страницы цен (Compliance), enterprise/security страницы
- Прикладывайте к письмам для регулируемых клиентов (IQ/OQ/PQ, SR 11-7 стиль ревью)
- Используйте JSON-схему, чтобы утверждения были проверяемыми: "pass/fail + худшие дельты + хеши"
