experiment(diarization): сопоставлены W0 и Sortformer на Ryzen #53

Merged
ddmitry merged 8 commits from experiment/46-streaming-sortformer-ryzen into master 2026-09-04 22:08:04 +03:00
Owner

Closes #46

Результат

  • В одной паре Sortformer обработал три фрагмента за 67,433 с против 103,242 с у W0: ускорение 34,68%.
  • Ожидалось 2 / 2 / 3 кластера. Sortformer получил 2 / 2 / 3, W0 — 2 / 2 / 2.
  • Mapped purity кандидата выше на обоих размеченных фрагментах.
  • Sortformer оставил без говорящего 92 слова против 73 у W0 и использовал около 551 МиБ RSS против 325 МиБ.
  • Обе ячейки задели swap; одной пары недостаточно для устойчивой оценки разброса.

Sortformer выглядит перспективным кандидатом для следующего эксперимента. Перед внедрением нужны повторные пары без активности swap и слуховая проверка неназначенных слов.

Что изменено

  • Свежая основа связывает числа голосов с source hash и принимает отсутствующую опорную разметку.
  • Active swap определяется изменением sin/sout во время ячейки.
  • Добавлен отчет с прямым сравнением скорости, кластеров, purity и памяти.
  • Новые материалы .scratch/ исключены из Git; общие диагностические скрипты сохранены.

Проверка

  • uv run pytest -q: 460 passed, 2 skipped.
  • Обязательный набор перед моделью: 113 passed.
  • Приватный runner: 18 passed; --validate-only, C ABI/config и live guard прошли.
  • Сравнительные агрегаты сверены с закрытыми результатами обеих моделей.
Closes #46 ## Результат - В одной паре Sortformer обработал три фрагмента за `67,433` с против `103,242` с у W0: ускорение `34,68%`. - Ожидалось `2 / 2 / 3` кластера. Sortformer получил `2 / 2 / 3`, W0 — `2 / 2 / 2`. - Mapped purity кандидата выше на обоих размеченных фрагментах. - Sortformer оставил без говорящего `92` слова против `73` у W0 и использовал около `551` МиБ RSS против `325` МиБ. - Обе ячейки задели swap; одной пары недостаточно для устойчивой оценки разброса. Sortformer выглядит перспективным кандидатом для следующего эксперимента. Перед внедрением нужны повторные пары без активности swap и слуховая проверка неназначенных слов. ## Что изменено - Свежая основа связывает числа голосов с source hash и принимает отсутствующую опорную разметку. - Active swap определяется изменением `sin`/`sout` во время ячейки. - Добавлен отчет с прямым сравнением скорости, кластеров, purity и памяти. - Новые материалы `.scratch/` исключены из Git; общие диагностические скрипты сохранены. ## Проверка - `uv run pytest -q`: 460 passed, 2 skipped. - Обязательный набор перед моделью: 113 passed. - Приватный runner: 18 passed; `--validate-only`, C ABI/config и live guard прошли. - Сравнительные агрегаты сверены с закрытыми результатами обеих моделей.
ddmitry added 7 commits 2026-09-04 21:44:44 +03:00
- Зачем:
  - детерминированный gate эксперимента не должен загружать native runtime в checksum-only тесте.
- Что:
  - в тест проверки поврежденного кеша добавлена структурная подмена sherpa_onnx.
- Проверка:
  - uv run pytest -q tests/test_streaming_sortformer_experiment.py tests/test_benchmark_experiment.py tests/test_speaker_diarizer.py tests/test_diarization.py.
Зачем:
- не допустить загрузку W0 и Sortformer без отдельного принятия трёх референсов владельцем
- связать manifest с точными байтами listening package и owner-authored record

Что:
- добавлены строгие схемы трёх reference rows и четырёх решений Step 3
- все внешние файлы проверяются через held fd без symlink и TOCTOU
- добавлены negative tests для подмен, неточных JSON-типов и небезопасных путей

Проверка:
- uv run pytest -q (532 passed, 2 skipped)
- uv run ruff check src/local_transcriber/streaming_sortformer_experiment.py tests/test_streaming_sortformer_experiment.py
- git diff --check
Зачем:
- хранить локальные handoff и launcher в постоянном каталоге без риска случайного коммита
- не терять временно закрепленный стенд диаризации между компьютерами

Что:
- весь корневой .scratch добавлен в ignore
- существующие диагностические скрипты оставлены отслеживаемыми
- описание локальных и переносимых артефактов приведено к новой политике

Проверка:
- git check-ignore -v --no-index .scratch/new-local-artifact
- git ls-files .scratch
- git diff --check
- Зачем:
  - source commit эксперимента должен включать актуальное состояние master.
- Что:
  - в рабочую ветку влиты изменения конфигурации диаризации и документации.
- Проверка:
  - слияние завершено без конфликтов, рабочее дерево чистое.
- Зачем:
  - канонический Ryzen-прогон не должен повторно запрашивать уже данное решение владельца до порога 30%.
- Что:
  - восстановлен короткий контракт approval и удалена лишняя схема owner-package.
  - разрешена парная nullable-опора для диагностик без ослабления обязательных gates.
  - NUL в путях отклоняется обезличенной ошибкой до загрузки моделей.
- Проверка:
  - uv run pytest -q: 457 passed, 2 skipped.
  - обязательный набор эксперимента: 110 passed; целевой Ruff пройден.
  - независимые code и task/taste review закрыты.
- Зачем:
  - занятые, но неизменные swap-страницы ошибочно блокировали канонический Ryzen-прогон.
- Что:
  - active swap определяется изменением счетчиков sin/sout во время ячейки.
  - сохранены memory gates для OOM, RSS plateau, линейного роста и пикового RSS.
- Проверка:
  - uv run pytest -q tests/test_streaming_sortformer_experiment.py tests/test_benchmark_experiment.py tests/test_speaker_diarizer.py tests/test_diarization.py.
- Зачем:
  - задача #46 должна завершиться воспроизводимым решением по каноническому Ryzen-эксперименту.
- Что:
  - записан stop из-за несовпадения числа кластеров свежего W0.
  - сохранены безопасные агрегаты W0 и вторичный провал проверки swap.
  - отмечено, что Sortformer не запускался и данных об ускорении нет.
- Проверка:
  - uv run pytest -q.
  - независимая сверка отчета с закрытым результатом и проверка литературного русского.
ddmitry added 1 commit 2026-09-04 22:01:01 +03:00
- Зачем:
  - формальный stop W0 не отвечал на практический вопрос о скорости и качестве кандидата.
- Что:
  - добавлены результаты одной диагностической пары на трех фрагментах.
  - сопоставлены скорость, число кластеров, purity, слова без говорящего и память.
  - границы вывода отделены от формального расписания эксперимента.
- Проверка:
  - сравнительные агрегаты сверены с закрытыми результатами обеих моделей.
  - git diff --check.
ddmitry changed title from experiment(diarization): завершён Ryzen-прогон Sortformer to experiment(diarization): сопоставлены W0 и Sortformer на Ryzen 2026-09-04 22:03:20 +03:00
ddmitry merged commit f3d0293120 into master 2026-09-04 22:08:04 +03:00
ddmitry deleted branch experiment/46-streaming-sortformer-ryzen 2026-09-04 22:08:05 +03:00
Sign in to join this conversation.