docs(benchmark): зафиксирован stop Ryzen-прогона

- Зачем:
  - задача #46 должна завершиться воспроизводимым решением по каноническому Ryzen-эксперименту.
- Что:
  - записан stop из-за несовпадения числа кластеров свежего W0.
  - сохранены безопасные агрегаты W0 и вторичный провал проверки swap.
  - отмечено, что Sortformer не запускался и данных об ускорении нет.
- Проверка:
  - uv run pytest -q.
  - независимая сверка отчета с закрытым результатом и проверка литературного русского.
This commit is contained in:
Dmitry Dementiev committed 2026-09-04 21:38:42 +03:00
1 parent 4c4a8be07b
commit b8bb78103a
1 file changed
+73
@@ -0,0 +1,73 @@
# Streaming Sortformer: формальный `stop` на Ryzen
**Дата:** 2026-09-04
**Статус:** эксперимент завершен как `stop`. Для трех объектов закрытого
манифеста были закреплены количества кластеров `2 / 2 / 3`, но W0 выдал
`2 / 2 / 2`. Кандидат не запускался.
## Решение
Свежий W0 не прошел обязательную проверку числа говорящих на одном из трех
300-секундных фрагментов. По условиям
[эксперимента](../specs/2026-09-01-streaming-sortformer-cpu-experiment.md)
такая база сравнения непригодна. Выполнена одна из двенадцати запланированных
ячеек. Sortformer и остальные ячейки не запускались, ускорение не считалось.
Данных о скорости или качестве кандидата этот прогон не дал.
Во время W0 также зафиксированы чтение из swap и запись в него. Это независимый
провал проверки среды и памяти, но первой причиной `stop` остается
`cluster-count-mismatch`: проверка качества завершилась раньше итогового снимка
системных счетчиков.
## Результат W0
| Показатель | Значение |
| --- | ---: |
| Суммарный wall, с | `103,242485` |
| Ожидаемые кластеры | `2 / 2 / 3` |
| Полученные кластеры | `2 / 2 / 2` |
| Пиковый RSS | `340 340 736` байт (`324,57` МиБ) |
| Прочитано из swap за ячейку | `503 808` байт (`492` КиБ) |
| Записано в swap за ячейку | `151 552` байт (`148` КиБ) |
Первые два фрагмента прошли обязательные проверки числа кластеров, текста,
порядка слов и интервалов. Третий фрагмент содержал подтвержденные три голоса,
но W0 сформировал два кластера. Повтор не назначался: несовпадение числа
кластеров само по себе завершает шаг приемки W0.
## Условия
W0 выполнялся по закрепленному рецепту `W0-FRESH`:
- `sherpa-onnx/core 1.13.6`, CPU provider;
- Pyannote Segmentation 3.0 FP32 и WeSpeaker ResNet34 LM FP32;
- один процесс, одна сессия, восемь физических ядер,
`intra_op_threads=8`, `inter_op_threads=1`;
- `window_shift_ratio=0.1`, `FastClustering(auto, 0.89)`,
`min_duration_on=0.3`, `min_duration_off=0.5`;
- Windows Balanced, boost mode `2`; Linux cpufreq/governor в WSL2 не
предоставляется.
До измерения успешно завершились обязательные детерминированные тесты, запуск
с `--validate-only` и предварительная проверка C ABI и конфигурации кандидата.
Последняя подтвердила четыре выходных канала, шаг `0,08` с и закрепленную
CPU-конфигурацию, но не обрабатывала аудио и не является проверкой качества
Sortformer.
## Техническая привязка
- коммит исходного кода `local-transcriber`:
`4c4a8be07b3653cede35b0435e6c9ef6cb3fb87d`;
- коммит NeMo-Speech.cpp:
`4f9676226f667d14608487df744f375db87127f8`;
- модель Streaming Sortformer v2 Q8_0:
`0679cfeb1ce356d0dea9470b31274f4bfc7eb927497d82005483770666da998a`;
- закрытый итоговый файл W0:
`ad32b3fe8a204e2fe6fbb6a13142e22c7e00ce9f0d816c3b0b8889fcab898e89`.
Последний SHA-256 нужен только для проверки неизменности закрытого результата:
он не оценивает диаризацию и не участвует в решении `stop`. Закрытая основа и
результаты сохраняются для следующих исследований. Их повторное использование
должно быть прямо предусмотрено новым экспериментом; вердикт и расписание
задачи #46 автоматически не переносятся.