docs(benchmark): расширено сравнение моделей на русских встречах
- Зачем: - выбор CPU-модели должен опираться на несколько реальных записей, а не на единичный прогон. - Что: - добавлены скорость, WER и качественное сравнение пяти моделей на трёх встречах. - обновлены рекомендации README и открытый вопрос ADR-006 для E2E RNN-T. - Проверка: - git diff --cached --check.
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
# Сравнение GigaAM v3, E2E и Whisper на русских встречах
|
||||
|
||||
**Дата:** 2026-08-11
|
||||
|
||||
**Статус:** завершённый benchmark на трёх записях
|
||||
|
||||
**Машина:** AMD Ryzen 7 8845H, Windows, CPU
|
||||
**Квантизация ONNX:** int8
|
||||
|
||||
## Цель
|
||||
|
||||
Выбрать практический CPU-профиль на случай, когда OpenVINO недоступен или
|
||||
нестабилен. Сравниваются скорость, близость к внешнему транскрипту, сохранность
|
||||
смысла и терминов, пунктуация и пригодность результата для чтения.
|
||||
|
||||
Внешний транскрипт используется как неточный ориентир, а не ground truth: он
|
||||
сам содержит ошибки, редактирует разговорную речь и добавляет диаризацию.
|
||||
Поэтому WER — сравнительный сигнал внутри одного файла, а не абсолютная оценка.
|
||||
|
||||
## Набор данных
|
||||
|
||||
Три реальные записи общей длительностью 43:37:
|
||||
|
||||
| Запись | Длительность | Характер речи | Ориентир |
|
||||
|---|---:|---|---|
|
||||
| Уточнение задачи BDMA | 14:51 | 2 говорящих, русский с IT-терминами | внешний транскрипт |
|
||||
| RSQM, внутренний дейлик | 14:04 | 5 говорящих, короткие реплики и задачи | внешний транскрипт с диаризацией |
|
||||
| DataCat, обсуждение архитектуры | 14:42 | 3 говорящих, высокая плотность английских терминов | внешний транскрипт с диаризацией |
|
||||
|
||||
Сырые записи и внешние транскрипты не коммитятся в репозиторий.
|
||||
|
||||
## Запись 1: уточнение задачи BDMA
|
||||
|
||||
Файл `2026-07-29 T2 BDMA уточнение задачи от Ильи.mp4`, длительность 14:51,
|
||||
преимущественно русская речь с IT- и продуктовыми терминами.
|
||||
|
||||
| Модель | Время | RTFx | WER к внешнему тексту | Пунктуация / 1000 слов |
|
||||
|---|---:|---:|---:|---:|
|
||||
| FasterWhisper medium CPU | 1133,9 с* | 0,79×* | **20,8%** | 313 |
|
||||
| OpenVINO medium | 190,6 с | 4,67× | **23,9%** | 187 |
|
||||
| GigaAM v3 | **72,6 с** | **12,27×** | 26,5% | 0 |
|
||||
| GigaAM Multilingual CTC | 84,8 с | 10,51× | 27,9% | 0 |
|
||||
| GigaAM v3 E2E RNN-T | 76,1 с | 11,71× | 29,0% | 326 |
|
||||
| GigaAM v3 E2E CTC | **72,6 с** | **12,27×** | 31,8% | 338 |
|
||||
|
||||
\* FasterWhisper включает около 263 секунд первой загрузки модели. Оценка
|
||||
самого распознавания — около 871 секунды, то есть 1,02× RTFx. Нужен отдельный
|
||||
cached-прогон для точного замера.
|
||||
|
||||
Все модели дошли до конца записи без предупреждений о потере хвоста.
|
||||
|
||||
## Расширенный прогон
|
||||
|
||||
| Запись | Модель | Время | RTFx | WER |
|
||||
|---|---|---:|---:|---:|
|
||||
| RSQM | GigaAM v3 | 75,1 с | 11,25× | **23,1%** |
|
||||
| RSQM | Multilingual CTC | 82,7 с | 10,21× | 24,4% |
|
||||
| RSQM | E2E RNN-T | 72,8 с | 11,60× | 25,4% |
|
||||
| RSQM | E2E CTC | **71,1 с** | **11,88×** | 28,0% |
|
||||
| RSQM | FasterWhisper medium | 686,1 с | 1,23× | **19,7%** |
|
||||
| DataCat | GigaAM v3 | **74,8 с** | **11,79×** | 27,5% |
|
||||
| DataCat | Multilingual CTC | 94,2 с | 9,36× | 27,9% |
|
||||
| DataCat | E2E RNN-T | 78,0 с | 11,31× | **26,4%** |
|
||||
| DataCat | E2E CTC | 76,0 с | 11,60× | 28,3% |
|
||||
| DataCat | FasterWhisper medium | 954,5 с | 0,92× | **21,9%** |
|
||||
|
||||
Все модели обработали записи до конца. Разрыв между длительностью файла и
|
||||
последним сегментом составил 0,3–5,9 секунды, предупреждений о потере хвоста или
|
||||
повторах не было.
|
||||
|
||||
### Сводка по трём записям
|
||||
|
||||
WER ниже посчитан как micro-average: сумма ошибок по трём файлам делится на
|
||||
суммарное число слов во внешних транскриптах.
|
||||
|
||||
| Модель | Суммарное время | RTFx | WER | Пунктуация / 1000 слов |
|
||||
|---|---:|---:|---:|---:|
|
||||
| FasterWhisper medium CPU | 2511,6 с* | 1,04× | **20,9%** | 269 |
|
||||
| GigaAM v3 | 222,5 с | 11,76× | **26,0%** | 0 |
|
||||
| GigaAM v3 E2E RNN-T | 226,9 с | 11,54× | 26,9% | 290 |
|
||||
| GigaAM Multilingual CTC | 261,7 с | 10,00× | 26,9% | 0 |
|
||||
| GigaAM v3 E2E CTC | **219,7 с** | **11,91×** | 29,3% | 305 |
|
||||
|
||||
\* Для BDMA использована оценка 871 секунд чистого inference: первый запуск
|
||||
FasterWhisper включал ещё около 263 секунд загрузки. RSQM и DataCat измерены на
|
||||
прогретом кеше — 686,1 и 954,5 секунды соответственно.
|
||||
|
||||
RNN-T оказалась лишь на 2% медленнее обычного GigaAM по суммарному времени.
|
||||
Multilingual медленнее обычного GigaAM на 18%, а выигрыш E2E CTC относительно
|
||||
RNN-T составляет только 3% и не компенсирует ухудшение текста.
|
||||
|
||||
## Качественное чтение
|
||||
|
||||
Независимый reviewer сначала прочитал полные тексты без таблицы метрик, затем
|
||||
сверил вывод с WER:
|
||||
|
||||
- FasterWhisper лучше сохраняет логику разговора и техническую лексику:
|
||||
`Teradata`, `ClickHouse`, `ETL`, `legacy`, `MPP`, `SAP/BW/HANA`, `GUI`,
|
||||
`Apex`. Значимых пропусков целых смысловых фрагментов не обнаружено.
|
||||
- OpenVINO близок к FasterWhisper, но чаще склеивает слова и иногда локально
|
||||
меняет смысл: около 00:59 «расчёт маржинальности называется» превращается в
|
||||
«расчёт маржинальности не бывает».
|
||||
- Обычный GigaAM v3 сохраняет почти весь смысл, числа и структуру обсуждения,
|
||||
но фонетические ошибки и отсутствие пунктуации ухудшают чтение и поиск.
|
||||
- E2E RNN-T читается лучше обычного GigaAM и устойчивее E2E CTC, но агрессивно
|
||||
дробит живую речь. На DataCat она лучше обычного GigaAM по WER, однако на
|
||||
BDMA и RSQM хуже на 2,3–2,5 процентного пункта.
|
||||
- E2E CTC даёт больше обрывков, ложных границ и смешанных артефактов:
|
||||
`иnженter`, `мetднные`, `оrкl`, `линейдgами`.
|
||||
- Multilingual CTC не улучшила даже терминологически насыщенный DataCat и
|
||||
оказалась на 15–26% медленнее обычного GigaAM на новых записях.
|
||||
|
||||
Длинных автономных галлюцинаций не найдено. Есть локальные потенциально
|
||||
опасные искажения имён и терминов: `Иришка`, `Lutriness`, «расчёт
|
||||
маржинальности не бывает», «расчёты по губам», «понюхаю дело».
|
||||
|
||||
На RSQM FasterWhisper сохраняет `edge-кейсы`, `Confluence` и `Backlog`; GigaAM
|
||||
передаёт их фонетически и нестабильно (`еджкейсы`, `ичкейсы`). На DataCat
|
||||
FasterWhisper лучше сохраняет `API`, `ETL`, `Open Platform`; обычный GigaAM
|
||||
хорошо удерживает сам смысл архитектурного обсуждения и большинство названий
|
||||
фонетически. RNN-T делает текст визуально аккуратнее, но название одного и того
|
||||
же продукта может плавать между `Fine BI`, `Fine Bia`, `FNB`, а `API` — между
|
||||
`API`, `AP`, `пи`.
|
||||
|
||||
## Рекомендация
|
||||
|
||||
- Для чтения человеком без дополнительного постпроцессинга —
|
||||
`gigaam-v3-e2e-rnnt`: по трём записям всего на 2% медленнее обычного GigaAM,
|
||||
но уже содержит пунктуацию и нормализацию. Это выбор цена/качество, а не
|
||||
максимум дословной точности.
|
||||
- Для последующей машинной обработки, поиска или собственной расстановки
|
||||
пунктуации — `gigaam-v3`: лучший совокупный WER среди быстрых ONNX-вариантов
|
||||
и более стабильный сырой текст.
|
||||
- `gigaam-v3-e2e-ctc` и `gigaam-multilingual-ctc` на этой записи преимуществ
|
||||
не показали.
|
||||
- FasterWhisper medium остаётся выбором для важных записей с плотной
|
||||
терминологией, если допустима обработка около realtime. По трём файлам она в
|
||||
11 раз медленнее GigaAM ради снижения WER примерно на 5–6 процентных пунктов.
|
||||
На CUDA соотношение необходимо измерять отдельно.
|
||||
|
||||
Три записи подтверждают RNN-T как практический профиль для готового текста, но
|
||||
не дают оснований молча менять общий default: существующие пользователи могут
|
||||
предпочитать более точный сырой `gigaam-v3`, а пунктуация RNN-T заметно дробит
|
||||
живую речь. Лучше выразить выбор явными профилями CLI или конфигурации.
|
||||
|
||||
## Воспроизводимость
|
||||
|
||||
Для каждого ONNX-профиля использовалась команда вида:
|
||||
|
||||
```powershell
|
||||
uv run transcribe <recording.mp4> --device onnx --model <model> --compute-type int8
|
||||
```
|
||||
|
||||
Время измерялось на прогретом кеше модели. WER считался после удаления
|
||||
метаданных и таймкодов, приведения к нижнему регистру, замены `ё` на `е` и
|
||||
удаления пунктуации.
|
||||
Reference in New Issue
Block a user