feat(onnx): изменена модель по умолчанию на GigaAM RNN-T
- Зачем: - пользователям нужен читаемый транскрипт без обязательной LLM-обработки. - Что: - моделью ONNX по умолчанию выбрана `gigaam-v3-e2e-rnnt`. - сохранён явный профиль `gigaam-v3` для более точного сырого текста. - обновлены тест, README, спецификация, ADR и benchmark. - Проверка: - `uv run pytest -q` — 226 passed, 1 skipped. - `git diff --check`.
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
# ADR-006: onnx-asr бэкенд — GigaAM v3 как CPU-default для русских встреч
|
||||
# ADR-006: GigaAM RNN-T как модель по умолчанию для ONNX-пути
|
||||
|
||||
**Статус**: Принято
|
||||
**Дата**: 2026-04-25
|
||||
**Обновлено**: 2026-08-11
|
||||
|
||||
## Контекст
|
||||
|
||||
@@ -100,19 +101,27 @@ Mm-hmm-редукция и иностранные вставки **не обна
|
||||
|
||||
## Решение
|
||||
|
||||
**Принять onnx-asr как экспериментальный бэкенд с явным `--device onnx`. GigaAM v3 — рекомендуемая модель для русских встреч на CPU.**
|
||||
**Принять onnx-asr как экспериментальный бэкенд с явным `--device onnx`.
|
||||
GigaAM v3 E2E RNN-T — модель по умолчанию для русских встреч на CPU.**
|
||||
|
||||
Бэкенд **не в auto-detect** — только при явном указании пользователем (политика experimental backend, как для openvino).
|
||||
|
||||
Модели:
|
||||
- **`gigaam-v3`** — рекомендуемая для русских встреч на CPU. 17-29× RTF, summary utility 4/5 на всех протестированных файлах. Без пунктуации, без латиницы; ошибки локальны, чинятся LLM-нормализацией.
|
||||
- **`gigaam-v3-e2e-rnnt`** — модель по умолчанию: практически равна обычному
|
||||
GigaAM по скорости, немного уступает по WER, но выдаёт готовую пунктуацию для
|
||||
пользователей, которые читают транскрипт напрямую.
|
||||
- **`gigaam-v3`** — явный профиль для последующей машинной обработки. 17-29×
|
||||
RTF, summary utility 4/5 на всех протестированных файлах. Без пунктуации и
|
||||
латиницы; ошибки локальны, чинятся LLM-нормализацией.
|
||||
- **`parakeet-v3`** — multilingual (25 языков), формально доступен. **Не рекомендуется для русских встреч**: Mm-hmm-редукция и иноязычные вставки воспроизводятся систематически (см. выше). Уместен только для англоязычного контента.
|
||||
|
||||
Обе модели в int8-квантизации (~300 MB).
|
||||
Все перечисленные модели доступны в int8-квантизации.
|
||||
|
||||
## Последствия
|
||||
|
||||
- Пользователи CPU-only с русскоязычным контентом получают 3-5× ускорение по сравнению с OpenVINO medium **при превосходящем качестве** (4/5 vs 1-2/5 summary utility на длинных файлах).
|
||||
- Пользователи ONNX без явного `--model` получают пунктуацию и нормализацию
|
||||
RNN-T; более точный сырой CTC остаётся доступен как `--model gigaam-v3`.
|
||||
- Whisper medium (`--device openvino-cpu`) **остаётся допустимым** для коротких (≤30 мин) встреч с равномерной громкостью; на длинных файлах с тихими участками он галлюцинирует целыми блоками — этот риск зафиксирован, но решение не выводит OpenVINO из списка дефолтов (часть пользователей всё ещё нуждается в пунктуации, и для коротких файлов галлюцинации не воспроизводятся).
|
||||
- Parakeet-v3 формально доступен, но в README рекомендуется только для англоязычного контента — для русского явно не годится.
|
||||
- GPU faster-whisper large-v3 остаётся эталоном по качеству (для пользователей с NVIDIA GPU).
|
||||
@@ -121,10 +130,6 @@ Mm-hmm-редукция и иностранные вставки **не обна
|
||||
## Открытые вопросы / следующие шаги
|
||||
|
||||
- **Galлюцинации Whisper medium на длинных файлах** — отдельный продуктовый риск, требующий собственного исследования. Возможно, имеет смысл ограничить максимальную длину чанка для openvino-medium, или дать предупреждение пользователю.
|
||||
- **GigaAM v3 E2E RNN-T** протестирована позднее на трёх 14–15-минутных
|
||||
записях: она практически равна обычному GigaAM по скорости и даёт готовую
|
||||
пунктуацию, но немного уступает по совокупному WER. Результаты и обновлённая
|
||||
рекомендация: [benchmark 2026-08-11](../benchmarks/2026-08-11-gigaam-model-comparison.md).
|
||||
- **Canary** (`nemo-canary-1b-v2`) — тяжелее, но multilingual + пунктуация. Кандидат на «лучшее качество за разумную скорость» для тех, кому важна пунктуация.
|
||||
- **Auto-detect onnx**: после стабилизации в production-использовании (несколько недель) — рассмотреть включение в auto-detect как первый CPU-бэкенд (ниже CUDA, выше OpenVINO).
|
||||
|
||||
|
||||
@@ -197,10 +197,10 @@ FasterWhisper лучше сохраняет `API`, `ETL`, `Open Platform`; об
|
||||
11 раз медленнее GigaAM ради снижения WER примерно на 5–6 процентных пунктов.
|
||||
На CUDA соотношение необходимо измерять отдельно.
|
||||
|
||||
Три записи подтверждают RNN-T как практический профиль для готового текста, но
|
||||
не дают оснований молча менять общий default: существующие пользователи могут
|
||||
предпочитать более точный сырой `gigaam-v3`, а пунктуация RNN-T заметно дробит
|
||||
живую речь. Лучше выразить выбор явными профилями CLI или конфигурации.
|
||||
По итогам сравнения и обсуждения двух основных сценариев RNN-T выбрана моделью
|
||||
по умолчанию для явного `--device onnx`: небольшая потеря дословной точности
|
||||
принята ради читаемого результата с пунктуацией. Для LLM-пайплайнов и поиска,
|
||||
где важнее сырой текст, `gigaam-v3` остаётся явным профилем.
|
||||
|
||||
## Воспроизводимость
|
||||
|
||||
|
||||
@@ -83,11 +83,18 @@ CTranslate2, а onnx-путь ставится в CPU-варианте.
|
||||
|
||||
Конкретные номера берутся из `uv.lock` при реализации.
|
||||
|
||||
## Последующее решение о модели по умолчанию
|
||||
|
||||
После сравнительного прогона на трёх реальных записях и обсуждения двух
|
||||
основных потребителей транскрипта модель `gigaam-v3-e2e-rnnt` выбрана моделью
|
||||
по умолчанию для явного `--device onnx`. Она всего на 2% медленнее сырого
|
||||
`gigaam-v3`, но выдаёт пунктуацию для чтения человеком; `gigaam-v3` остаётся
|
||||
явным профилем с приоритетом дословной точности и последующей обработки LLM.
|
||||
Это решение не включает ONNX в auto-detect.
|
||||
|
||||
## Чего не делаем
|
||||
|
||||
- Не меняем модель по умолчанию и auto-detect: `gigaam-v3` остаётся дефолтом
|
||||
`--device onnx`. Решение о CPU-дефолте требует замеров на целевом Intel Core
|
||||
i5, которого сейчас нет в доступе.
|
||||
- Не меняем auto-detect: ONNX остаётся только явным выбором пользователя.
|
||||
- Не обновляем OpenVINO, OpenVINO GenAI и CTranslate2. Whisper medium на
|
||||
OpenVINO — то, с чем сравниваются новые модели; менять его движок
|
||||
одновременно значит потерять точку отсчёта. Верхние границы версий им при
|
||||
@@ -156,8 +163,9 @@ Python и зависимости при неизменных моделях —
|
||||
|
||||
## Документация
|
||||
|
||||
README: четыре модели в таблицу ONNX-моделей. Для русского без пунктуации
|
||||
рекомендуется `gigaam-v3`, для готового читаемого текста — E2E RNN-T, для
|
||||
README: поддерживаемые модели добавляются в таблицу ONNX-моделей. Для готового
|
||||
читаемого русского текста и как модель по умолчанию используется E2E RNN-T,
|
||||
для русского без пунктуации и LLM-пайплайнов остаётся явный `gigaam-v3`, для
|
||||
смешанной речи с приоритетом качества — multilingual large. Скорость на слабых
|
||||
CPU не измерялась. Требование Python
|
||||
правится в [`docs/PRD.md`](../PRD.md) — раздел «Требования» и таблица
|
||||
|
||||
Reference in New Issue
Block a user