fix(experiment): устранен повторный gate принятия опоры
- Зачем: - канонический Ryzen-прогон не должен повторно запрашивать уже данное решение владельца до порога 30%. - Что: - восстановлен короткий контракт approval и удалена лишняя схема owner-package. - разрешена парная nullable-опора для диагностик без ослабления обязательных gates. - NUL в путях отклоняется обезличенной ошибкой до загрузки моделей. - Проверка: - uv run pytest -q: 457 passed, 2 skipped. - обязательный набор эксперимента: 110 passed; целевой Ruff пройден. - независимые code и task/taste review закрыты.
This commit is contained in:
1 parent
0cd105927b
commit
d71aec4ab2
3 files changed
+99
-1272
No files matched your search
@@ -186,20 +186,25 @@ mono/16 kHz float32. Публичные документы получают то
|
||||
после единственного закрепленного преобразования, а ни один путь, ID или
|
||||
интервал не попадает в stdout режима `--validate-only`.
|
||||
|
||||
### Шаг 2. Создать ASR-sidecar и опорную разметку
|
||||
### Шаг 2. Подготовить ASR-sidecar и доступную опорную разметку
|
||||
|
||||
Действующий ASR выполняется один раз для каждой полной записи до измерений.
|
||||
Sidecar хранит канонические слова с временной привязкой и нормализованный текст;
|
||||
fragment-sidecar получается детерминированным срезом той же версии. Затем
|
||||
человек прослушивает каждый фрагмент целиком, фиксирует ожидаемое число
|
||||
голосовых кластеров для фрагментов и полных записей и создает опорную разметку,
|
||||
достаточную для mapped purity и выбора мест прослушивания. Опорная разметка
|
||||
остается приближенной и не объявляется истиной границ.
|
||||
человек прослушивает каждый фрагмент целиком и фиксирует ожидаемое число
|
||||
голосовых кластеров для фрагментов и полных записей. Опорная разметка фрагмента
|
||||
необязательна: `reference_path` и `reference_sha256` либо заполнены вместе, либо
|
||||
оба равны `null`. При наличии разметки стенд считает mapped purity и выбирает
|
||||
места прослушивания; сама разметка остается приближенной и не объявляется
|
||||
истиной границ.
|
||||
|
||||
Критерий завершения: для каждого фрагмента и каждой полной записи есть
|
||||
подтвержденное человеком `expected_cluster_count` в диапазоне `2..4`, один
|
||||
неизменяемый sidecar и SHA-256; для фрагментов также есть опорная разметка.
|
||||
Числа старых контролей не копируются.
|
||||
неизменяемый sidecar и SHA-256. Отсутствие опорной разметки не блокирует
|
||||
измерение и не ослабляет остальные gates. Для канонического Ryzen-прогона
|
||||
используются подтвержденные владельцем числа `3 / 2 / 2`; их привязывают к
|
||||
источникам по хешам, а не по порядку нейтральных имен. Повторное прослушивание
|
||||
для подсчета голосов не требуется.
|
||||
|
||||
### Шаг 3. Пройти пользовательский gate
|
||||
|
||||
@@ -216,6 +221,10 @@ fragment-sidecar получается детерминированным сре
|
||||
Критерий завершения: в закрытом manifest есть timestamped decision `approved`.
|
||||
Без него исход `needs-user`; стенд не загружает модели.
|
||||
|
||||
В каноническом Ryzen-прогоне решением `approved` служит датированный handoff
|
||||
владельца в комментарии к задаче #46. Нового подтверждения до достижения
|
||||
30%-го порога не требуется.
|
||||
|
||||
## Измеряемая величина и A/B
|
||||
|
||||
Время W0 - wall вокруг одного `diarizer.process(samples)`. Время кандидата -
|
||||
@@ -333,9 +342,10 @@ hashes и один pair ID; рассчитаны ускорение, CPU и RSS
|
||||
- каноническая нумерация меток детерминирована на повторном расчете метрик;
|
||||
- все inputs, параметры и output artifacts имеют SHA-256.
|
||||
|
||||
Purity и число слов без говорящего сравниваются с новым `W0-FRESH`. Ухудшение
|
||||
не дает автоматического `fail`, но обязательно добавляет все затронутые места в
|
||||
слуховой gate. Старые абсолютные значения не участвуют.
|
||||
Purity для фрагментов с опорной разметкой и число слов без говорящего
|
||||
сравниваются с новым `W0-FRESH`. Ухудшение не дает автоматического `fail`, но
|
||||
обязательно добавляет все затронутые места в слуховой gate. Старые абсолютные
|
||||
значения не участвуют.
|
||||
|
||||
Открытый диагностикой слуховой gate не прерывает шаги 5-6. Стенд накапливает
|
||||
затронутые места и добавляет их в материал шага 7. Состояние `needs-user` из-за
|
||||
@@ -353,7 +363,7 @@ Purity и число слов без говорящего сравниваютс
|
||||
- каждая итоговая speaker label принадлежит `1..4`;
|
||||
- число и суммарная длительность интервалов по каждому каналу;
|
||||
- число коротких интервалов, overlap ratio, unmatched words, малые/остаточные
|
||||
кластеры и mapped purity относительно свежей опорной разметки;
|
||||
кластеры и mapped purity для фрагментов с опорной разметкой;
|
||||
- wall отдельно для model inference и segment post-processing.
|
||||
|
||||
Любой неверный shape/value/label или эффективная конфигурация, отличная от
|
||||
@@ -390,7 +400,7 @@ runtime/model/build artifact или закрытый вход не попада
|
||||
- versioned manifest со schema, clean local-transcriber source commit,
|
||||
source/model/runtime/build hashes и расписанием;
|
||||
- исходные ссылки, подготовленные WAV и recipe преобразования;
|
||||
- ASR-sidecar и опорную разметку;
|
||||
- ASR-sidecar и имеющуюся опорную разметку;
|
||||
- raw per-fragment results, intervals, word assignments и probability
|
||||
diagnostics;
|
||||
- machine/power/runtime guards и stderr/stdout logs;
|
||||
@@ -458,8 +468,9 @@ privacy scan. Реализация стенда фиксируется чист
|
||||
|
||||
## Критерии завершения эксперимента
|
||||
|
||||
- [ ] Свежая опора подтверждена владельцем и не наследует старые контрольные
|
||||
значения.
|
||||
- [ ] Свежая опора собрана в новом закрытом хранилище; подтвержденные входы,
|
||||
доступная разметка и числа голосов связаны по хешам, а старые manifest,
|
||||
расписание и результаты не наследуются.
|
||||
- [ ] Runtime, модель, сборка и оба рецепта закреплены и проверены до моделей.
|
||||
- [ ] Clean local-transcriber source commit сохранен в закрытом хранилище и
|
||||
публичном отчете, а `--validate-only` проверяет его до моделей.
|
||||
|
||||
Reference in new issue
Block a user