feat(onnx): добавлен каталог моделей GigaAM и Python 3.13 #3

Merged
ddmitry merged 8 commits from feature/onnx-model-catalog into master 2026-08-11 22:38:02 +03:00
Owner

Что изменено

  • проект переведён на Python 3.13, прямые зависимости получили верхние границы;
  • ONNX Runtime обновлён до 1.28, onnx-asr — до 0.12;
  • добавлен каталог GigaAM, включая multilingual, E2E и Large-модели;
  • выбор compute_type учитывает доступные квантизации модели;
  • моделью по умолчанию для явного --device onnx стала gigaam-v3-e2e-rnnt;
  • CTranslate2 обновлён до 4.8.1 для устранения 0xC0000409 после длинной Windows/CUDA-пакетной обработки;
  • обновлены README, PRD и сравнительный benchmark.

Проверка

  • uv lock --check — успешно;
  • Windows: 226 passed, 1 skipped;
  • WSL2: 226 passed, 1 skipped;
  • Windows/CUDA: холодный и повторный одиночные прогоны, затем пакет из трёх записей — успешно;
  • WSL2: полные CUDA, ONNX RNN-T и OpenVINO CPU-прогоны — успешно;
  • RTX 3060 Laptop 6 ГиБ, драйвер 610.88, CUDA Toolkit 12.9;
  • ошибок CUDA/OOM, повторов и предупреждений о потере хвоста нет.

Для финальной матрицы использованы другие доступные записи длительностью 15:52, 22:27 и 24:04, поскольку трёх файлов из benchmark-манифеста в каталоге OBS не было. В WSL/CUDA отмечена дополнительная короткая фраза на шумном хвосте, которой нет в Windows/CUDA, ONNX и OpenVINO; на стабильность обработки это не влияет.

Closes #1

## Что изменено - проект переведён на Python 3.13, прямые зависимости получили верхние границы; - ONNX Runtime обновлён до 1.28, `onnx-asr` — до 0.12; - добавлен каталог GigaAM, включая multilingual, E2E и Large-модели; - выбор `compute_type` учитывает доступные квантизации модели; - моделью по умолчанию для явного `--device onnx` стала `gigaam-v3-e2e-rnnt`; - CTranslate2 обновлён до 4.8.1 для устранения `0xC0000409` после длинной Windows/CUDA-пакетной обработки; - обновлены README, PRD и сравнительный benchmark. ## Проверка - `uv lock --check` — успешно; - Windows: `226 passed, 1 skipped`; - WSL2: `226 passed, 1 skipped`; - Windows/CUDA: холодный и повторный одиночные прогоны, затем пакет из трёх записей — успешно; - WSL2: полные CUDA, ONNX RNN-T и OpenVINO CPU-прогоны — успешно; - RTX 3060 Laptop 6 ГиБ, драйвер 610.88, CUDA Toolkit 12.9; - ошибок CUDA/OOM, повторов и предупреждений о потере хвоста нет. Для финальной матрицы использованы другие доступные записи длительностью 15:52, 22:27 и 24:04, поскольку трёх файлов из benchmark-манифеста в каталоге OBS не было. В WSL/CUDA отмечена дополнительная короткая фраза на шумном хвосте, которой нет в Windows/CUDA, ONNX и OpenVINO; на стабильность обработки это не влияет. Closes #1
ddmitry added 8 commits 2026-08-11 21:50:50 +03:00
- Зачем:
  - подготовлена совместимая основа для ONNX Runtime 1.28 и onnx-asr 0.12.
- Что:
  - минимальная версия Python поднята до 3.13 и добавлен файл версии.
  - tomli заменён стандартным tomllib.
  - прямые runtime-зависимости ограничены сверху, ONNX Runtime объявлен явно.
- Проверка:
  - uv lock --check.
  - uv run pytest -q: 218 passed, 1 skipped.
  - выполнены реальные прогоны ONNX, OpenVINO CPU и FasterWhisper CPU.
- Зачем:
  - добавлена локальная транскрипция смешанной речи и русского текста с пунктуацией.
- Что:
  - onnx-asr обновлён до 0.12 и зарегистрированы три модели GigaAM.
  - выбор compute_type учитывает опубликованные квантизации и явность настройки.
  - обновлены тесты, README и требования PRD.
- Проверка:
  - uv run pytest -q: 223 passed, 1 skipped.
  - выполнены smoke- и полные прогоны четырёх GigaAM-моделей.
- Зачем:
  - закрыты замечания независимого review по воспроизводимости и VAD-приёмке.
- Что:
  - рабочая версия Python точно зафиксирована на 3.13.13.
  - нулевые и обратные VAD-сегменты исключены из результата.
  - в README записаны наблюдаемые скорости новых моделей с указанием CPU.
- Проверка:
  - uv run pytest -q: 224 passed, 1 skipped.
  - ограниченная проверка Ruff и uv lock --check завершены успешно.
- Зачем:
  - выбор CPU-модели должен опираться на несколько реальных записей, а не на единичный прогон.
- Что:
  - добавлены скорость, WER и качественное сравнение пяти моделей на трёх встречах.
  - обновлены рекомендации README и открытый вопрос ADR-006 для E2E RNN-T.
- Проверка:
  - git diff --cached --check.
- Зачем:
  - расширенный benchmark показал устойчивое улучшение multilingual large на трёх реальных записях.
- Что:
  - добавлен alias gigaam-multilingual-large-ctc с квантизациями int8 и float32.
  - обновлены README, спецификация, backlog и сравнительный benchmark.
- Проверка:
  - uv run pytest -q: 225 passed, 1 skipped.
  - uvx ruff check src/local_transcriber/backends/onnx_asr.py tests/test_onnx_asr.py.
Зачем:
- зафиксировать сравнение моделей на одном и том же массиве записей
- сохранить воспроизводимый набор файлов для будущих прогонов

Что:
- добавлены метрики и качественный вывод по Parakeet v3
- записаны точные имена, размеры и SHA-256 видео и эталонов
- обновлена рекомендация в README

Проверка:
- git diff --check
- Зачем:
  - пользователям нужен читаемый транскрипт без обязательной LLM-обработки.
- Что:
  - моделью ONNX по умолчанию выбрана `gigaam-v3-e2e-rnnt`.
  - сохранён явный профиль `gigaam-v3` для более точного сырого текста.
  - обновлены тест, README, спецификация, ADR и benchmark.
- Проверка:
  - `uv run pytest -q` — 226 passed, 1 skipped.
  - `git diff --check`.
- Зачем:
  - CTranslate2 4.7.1 аварийно завершал Windows/CUDA-процесс кодом 0xC0000409 после успешной обработки пакета.
- Что:
  - версия CTranslate2 в uv.lock обновлена до 4.8.1.
  - устранён сбой освобождения CUDA-ресурсов после длинного пакетного прогона.
- Проверка:
  - uv lock --check; uv run pytest -q в Windows и WSL2.
  - полный пакет из трёх записей на Windows/CUDA и полные CUDA, ONNX и OpenVINO-прогоны в WSL2.
ddmitry merged commit 88e25c983c into master 2026-08-11 22:38:02 +03:00
ddmitry deleted branch feature/onnx-model-catalog 2026-08-11 22:38:02 +03:00
Sign in to join this conversation.