Подготовить проверяемую спецификацию следующего CPU-эксперимента: выбрать сочетание уменьшения числа окон, модели и кластеризации, а также способа исполнения, которое имеет шанс сократить время диаризации минимум на 30% с ориентиром около 2x. Спецификация должна сохранить текущую проверку качества и задать правило оценки памяти на доступных Intel- и Ryzen-машинах, без назначения целевого процессора.
Notes
Исходная точка: задача #25, комментарий issuecomment-2181, docs/benchmarks/2026-08-30-lightweight-diarization-cpu.md, docs/research/2026-08-14-diarization-cpu-cost.md и ADR-007.
Текущий профиль Pyannote FP32 + WeSpeaker остается рабочей конфигурацией до отдельного решения.
Для разговорных тикетов применять $grilling и $domain-modeling; для внешних фактов - $research с первичными источниками.
Карта планирует решения. Полный прогон и production-реализация начнутся в отдельных задачах после готовой спецификации.
Приватные записи, расшифровки, ASR-sidecar и полные результаты не публиковать в Git, Gitea или внешнем ревью. Переносимая капсула хранится локально и должна попасть только в закрытую папку Яндекс Диска.
Зафиксировать аппаратную матрицу и бюджет памяти - разрабатывать и отсеивать варианты на старом Intel, а итоговые 30% принимать на Ryzen; ограничить потоки физическими ядрами, разбирать RSS выше 2 ГиБ и не включать Mac в приемку.
Если каскад Pyannote + embeddings упрется в качество до нужной скорости, понадобится отдельная карта для end-to-end архитектуры.
Out of scope
Изменение рабочей конфигурации и production-кода в рамках этой карты.
Сам полный многократный CPU-прогон: карта заканчивается готовой спецификацией эксперимента.
Параллельный запуск ASR и диаризации из задачи #22, автоматическое включение из задачи #23, GPU и NPU.
Sortformer и другие end-to-end диаризаторы до доказанного тупика текущего каскада.
Отдельный пользовательский профиль по ISA или автоматический резервный путь по возможностям процессора: решение принимается после полного эксперимента, только если результаты покажут такую необходимость.
## Destination
Подготовить проверяемую спецификацию следующего CPU-эксперимента: выбрать сочетание уменьшения числа окон, модели и кластеризации, а также способа исполнения, которое имеет шанс сократить время диаризации минимум на 30% с ориентиром около 2x. Спецификация должна сохранить текущую проверку качества и задать правило оценки памяти на доступных Intel- и Ryzen-машинах, без назначения целевого процессора.
## Notes
- Исходная точка: задача #25, комментарий `issuecomment-2181`, `docs/benchmarks/2026-08-30-lightweight-diarization-cpu.md`, `docs/research/2026-08-14-diarization-cpu-cost.md` и ADR-007.
- Текущий профиль Pyannote FP32 + WeSpeaker остается рабочей конфигурацией до отдельного решения.
- Для разговорных тикетов применять `$grilling` и `$domain-modeling`; для внешних фактов - `$research` с первичными источниками.
- Карта планирует решения. Полный прогон и production-реализация начнутся в отдельных задачах после готовой спецификации.
- Приватные записи, расшифровки, ASR-sidecar и полные результаты не публиковать в Git, Gitea или внешнем ревью. Переносимая капсула хранится локально и должна попасть только в закрытую папку Яндекс Диска.
## Decisions so far
- [Определить способы ускорить embedding-инференс на разных x86 CPU](https://git.dementev.space/ddmitry/local-transcriber/issues/32#issuecomment-2216) - для текущего WeSpeaker прототипировать S8S8 QDQ и конкурентные stream на одной ORT session; batch оставить условным направлением TitaNet и проверить на AVX2 и VNNI/AVX-512.
- [Выбрать способ оценки числа говорящих для быстрых эмбеддингов](https://git.dementev.space/ddmitry/local-transcriber/issues/33#issuecomment-2230) - оценивать N счетчиком NME по единой внутренней матрице sherpa и передавать его штатному FastClustering; для стенда разделить внутренний Process на Prepare и Finalize.
- [Зафиксировать аппаратную матрицу и бюджет памяти](https://git.dementev.space/ddmitry/local-transcriber/issues/35#issuecomment-2243) - разрабатывать и отсеивать варианты на старом Intel, а итоговые 30% принимать на Ryzen; ограничить потоки физическими ядрами, разбирать RSS выше 2 ГиБ и не включать Mac в приемку.
- [Найти поддерживаемый способ менять шаг окна sherpa-onnx](https://git.dementev.space/ddmitry/local-transcriber/issues/36#issuecomment-2254): для прототипа перейти на 1.13.6, менять `window_shift_ratio` через публичный Python API и сохранить production default `0,1` до проверки сетки.
- [Собрать минимальную матрицу следующего CPU-эксперимента](https://git.dementev.space/ddmitry/local-transcriber/issues/34#issuecomment-2306) - провести ограниченную воронку с дешевым отсевом на Intel и финальной приемкой на Ryzen; выполнение разделено на Intel-задачу #41 и заблокированную ею Ryzen-задачу #42.
## Not yet specified
- Если каскад Pyannote + embeddings упрется в качество до нужной скорости, понадобится отдельная карта для end-to-end архитектуры.
## Out of scope
- Изменение рабочей конфигурации и production-кода в рамках этой карты.
- Сам полный многократный CPU-прогон: карта заканчивается готовой спецификацией эксперимента.
- Параллельный запуск ASR и диаризации из задачи #22, автоматическое включение из задачи #23, GPU и NPU.
- Sortformer и другие end-to-end диаризаторы до доказанного тупика текущего каскада.
- Отдельный пользовательский профиль по ISA или автоматический резервный путь по возможностям процессора: решение принимается после полного эксперимента, только если результаты покажут такую необходимость.
Карта завершена: решения по embedding-инференсу, числу говорящих, аппаратной матрице, шагу окна и итоговой воронке зафиксированы, открытых дочерних тикетов не осталось.
Результат карты: спецификация docs/specs/2026-08-30-cpu-diarization-experiment.md в PR #40. Реализация стенда и полный эксперимент вынесены в ready-for-agent задачу #41. Текущий production-профиль не менялся.
Карта завершена: решения по embedding-инференсу, числу говорящих, аппаратной матрице, шагу окна и итоговой воронке зафиксированы, открытых дочерних тикетов не осталось.
Результат карты: спецификация `docs/specs/2026-08-30-cpu-diarization-experiment.md` в PR #40. Реализация стенда и полный эксперимент вынесены в ready-for-agent задачу #41. Текущий production-профиль не менялся.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Destination
Подготовить проверяемую спецификацию следующего CPU-эксперимента: выбрать сочетание уменьшения числа окон, модели и кластеризации, а также способа исполнения, которое имеет шанс сократить время диаризации минимум на 30% с ориентиром около 2x. Спецификация должна сохранить текущую проверку качества и задать правило оценки памяти на доступных Intel- и Ryzen-машинах, без назначения целевого процессора.
Notes
issuecomment-2181,docs/benchmarks/2026-08-30-lightweight-diarization-cpu.md,docs/research/2026-08-14-diarization-cpu-cost.mdи ADR-007.$grillingи$domain-modeling; для внешних фактов -$researchс первичными источниками.Decisions so far
window_shift_ratioчерез публичный Python API и сохранить production default0,1до проверки сетки.Not yet specified
Out of scope
ddmitry referenced this issue2026-08-31 00:17:37 +03:00
Карта завершена: решения по embedding-инференсу, числу говорящих, аппаратной матрице, шагу окна и итоговой воронке зафиксированы, открытых дочерних тикетов не осталось.
Результат карты: спецификация
docs/specs/2026-08-30-cpu-diarization-experiment.mdв PR #40. Реализация стенда и полный эксперимент вынесены в ready-for-agent задачу #41. Текущий production-профиль не менялся.