Files
local-transcriber/docs/benchmarks/2026-08-12-openvino-large-v3-turbo-comparison.md
T
Dmitry Dementiev f043f4e3b5 docs(openvino): добавлены результаты сравнения turbo
- Зачем:
  - нужна практическая оценка нового CPU-профиля на русских встречах.
- Что:
  - зафиксированы скорость, WER, пунктуация, нагрузка и отзывчивость.
  - добавлены две независимые оценки качества и рекомендации пользователям.
- Проверка:
  - uv run pytest.
  - реальные прогоны четырёх профилей на трёх записях.
2026-08-12 08:46:46 +03:00

189 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Сравнение OpenVINO large-v3-turbo с CPU-профилями
**Дата:** 2026-08-12
**Статус:** завершённое сравнение на трёх русскоязычных встречах
## Цель
Проверить обновление OpenVINO с линии 2026.0 до 2026.3 и определить, даёт ли
`large-v3-turbo` практическое преимущество перед `medium` и быстрым профилем
ONNX на CPU. Модель по умолчанию и порядок выбора `--device auto` в рамках
сравнения не менялись.
## Оборудование и условия
- ноутбук Lenovo 82JD;
- Intel Core i7-11800H, 8 ядер / 16 логических процессоров, 2,30 ГГц;
- 64 ГиБ DDR4-3200, два модуля Kingston по 32 ГиБ;
- Windows 11 Корпоративная, сборка 26200;
- схема питания «Сбалансированная»;
- OpenVINO 2026.3.0, OpenVINO GenAI и Tokenizers 2026.3.0.0;
- Python 3.13.13;
- язык во всех командах задан явно: `--language ru`;
- модели запускались последовательно, без конкурирующих прогонов.
Кэш каждой модели предварительно прогревался. Время измерялось от запуска
команды до её завершения и включает чтение и декодирование локального файла,
но не скачивание модели. Загрузка процессора и свободная память опрашивались
раз в две секунды. Минимум свободной памяти характеризует всю систему, а не
только процесс распознавания.
Во время прогонов система оставалась пригодной для обычной интерактивной
работы. На OpenVINO средняя загрузка составляла 54–62%. ONNX на двух записях
кратковременно занимал процессор полностью, но наблюдаемого зависания системы
не было. Это субъективное наблюдение, а не числовой порог приёмки.
## Контрольный набор
Использованы те же три записи общей длительностью 43:37 и те же внешние
транскрипты, что в [сравнении GigaAM и Whisper](2026-08-11-gigaam-model-comparison.md).
Размеры и SHA-256 всех шести локальных файлов совпали с опубликованным там
манифестом.
Внешние транскрипты сами содержат ошибки, редактируют разговорную речь и
добавляют разделение по говорящим. Поэтому WER служит сравнительным сигналом
внутри одной записи, а не абсолютной оценкой качества.
## Методика
Команды OpenVINO имели следующий вид:
```powershell
uv run transcribe <recording.mp4> `
--device openvino-cpu `
--model <medium|large-v3-turbo> `
--compute-type <int8|fp16> `
--language ru `
--force
```
Для ONNX использовались `--device onnx`, `--model gigaam-v3-e2e-rnnt` и
`--compute-type int8`. WER считался после удаления метаданных, таймкодов и
обозначений говорящих, приведения к нижнему регистру, замены `ё` на `е` и
удаления пунктуации. Итоговый WER — микроусреднение: сумма замен, удалений и
вставок делится на общее число слов во внешних текстах. Плотность пунктуации —
число знаков `.,!?…:;` на 1000 распознанных слов.
## Проверка обновления OpenVINO
До изменения зависимостей OpenVINO 2026.0 `medium` INT8 был повторно запущен
на всём наборе с прогретым кэшем. После обновления тот же профиль успешно
прошёл автоматические проверки и реальный прогон.
| Стек и профиль | Суммарное время | RTFx | WER | Пунктуация / 1000 слов | Предупреждения |
|---|---:|---:|---:|---:|---:|
| OpenVINO 2026.0 medium INT8 | 417,0 с | 6,28× | 28,9% | 191 | 1 |
| OpenVINO 2026.3 medium INT8 | 436,7 с | 5,99× | 25,3% | 185 | 0 |
На линии 2026.0 RSQM содержал 11 одинаковых последовательных сегментов и
получил предупреждение о возможной галлюцинации. После обновления повтор не
воспроизвёлся, а WER этой записи снизился с 34,2% до 23,3%. Суммарное время
выросло на 4,7%; из-за естественного разброса единичных запусков это не следует
считать устойчивой регрессией без серии повторов.
## Результаты после обновления
### Сводка по трём записям
| Профиль | Время | RTFx | WER | Пунктуация / 1000 слов | Средний / пиковый CPU | Минимум свободной памяти |
|---|---:|---:|---:|---:|---:|---:|
| OpenVINO medium INT8 | 436,7 с | 5,99× | 25,3% | 185 | 54,3% / 85% | 36,25 ГиБ |
| **OpenVINO large-v3-turbo INT8** | **365,5 с** | **7,16×** | **24,0%** | 96 | 62,0% / 86% | 35,04 ГиБ |
| OpenVINO large-v3-turbo FP16 | 545,0 с | 4,80× | 24,8% | 103 | 57,1% / 87% | 32,96 ГиБ |
| ONNX GigaAM v3 E2E RNN-T INT8 | **265,7 с** | **9,85×** | 29,1% | **290** | 70,7% / 100% | 35,52 ГиБ |
### По отдельным записям
| Запись | Профиль | Время | RTFx | WER | Пунктуация / 1000 слов |
|---|---|---:|---:|---:|---:|
| BDMA | medium INT8 | 137,0 с | 6,50× | **23,0%** | 194 |
| BDMA | turbo INT8 | **118,7 с** | **7,51×** | 24,4% | 79 |
| BDMA | turbo FP16 | 180,0 с | 4,95× | 26,2% | 60 |
| BDMA | GigaAM RNN-T INT8 | **87,6 с** | **10,17×** | 29,0% | **326** |
| RSQM | medium INT8 | 125,7 с | 6,72× | 23,3% | 171 |
| RSQM | turbo INT8 | 116,9 с | 7,23× | **22,4%** | 4 |
| RSQM | turbo FP16 | 170,2 с | 4,96× | 23,3% | 31 |
| RSQM | GigaAM RNN-T INT8 | **92,9 с** | **9,09×** | 27,4% | **286** |
| DataCat | medium INT8 | 174,0 с | 5,07× | 28,1% | 188 |
| DataCat | turbo INT8 | **129,9 с** | **6,79×** | **24,7%** | 169 |
| DataCat | turbo FP16 | 194,7 с | 4,53× | **24,7%** | 181 |
| DataCat | GigaAM RNN-T INT8 | **85,2 с** | **10,36×** | 30,4% | **265** |
## Качественная оценка
Два независимых субагента читали полные транскрипты без таблицы численных
метрик. Один оценивал читаемость и пригодность для конспекта и протокола,
второй — сохранность содержания и терминов, пропуски, повторы и галлюцинации.
### Читаемость и пригодность результата
| Профиль | Читаемость | Для конспекта | Для протокола |
|---|---:|---:|---:|
| ONNX GigaAM RNN-T INT8 | **4/5** | **4/5** | **3/5** |
| OpenVINO medium INT8 | 3/5 | 3/5 | **3/5** |
| OpenVINO turbo INT8 | 2/5 | 3/5 | 2/5 |
| OpenVINO turbo FP16 | 2/5 | 3/5 | 2/5 |
Проверяющий поставил GigaAM на первое место благодаря пунктуации, отделению
реплик и естественному ритму. Из текста без труда извлекаются решения: собрать
вопросы для архитектуры и сайзинга, не связываться с «дата-рентгеном» в пилоте,
уточнить способ доступа к FineBI. При этом протокол требует сверки терминов:
`XML` превращается в «Максмельная», `Spark` — в «парк», `MPP` — в «MP-шный».
Medium в основном сохраняет ход мысли, но нестабилен в названиях: «бутылочка в
FineBI» вместо учётной записи, `NiFi` как `I5`, `edge cases` как `HKEYS`.
Оба turbo-профиля иногда лучше узнают отдельные имена и термины, включая
«Рома Иваницкий», `Open Lineage` и `DBC tables V`, однако длинные блоки почти
без пунктуации приходится разбирать вручную. Практического преимущества FP16
над INT8 по читаемости не найдено.
### Сохранность содержания
| Профиль | Смысл | Термины | Пропуски | Повторы и выдумки |
|---|---:|---:|---:|---:|
| ONNX GigaAM RNN-T INT8 | **5/5** | **4/5** | **4/5** | **4/5** |
| OpenVINO medium INT8 | 4/5 | 3/5 | **4/5** | **4/5** |
| OpenVINO turbo FP16 | 4/5 | 3/5 | 3/5 | **4/5** |
| OpenVINO turbo INT8 | 3/5 | 3/5 | 3/5 | **4/5** |
Второй проверяющий также поставил GigaAM первым: он лучше удерживает ход
рассуждения, отрицания и поручения. Среди OpenVINO medium оказался надёжнее
обоих turbo-профилей по сохранности содержания, несмотря на худший WER.
Наиболее опасные искажения:
- turbo FP16 в DataCat пропустил оговорку о том, что API-контракт извлечён из
JAR-файлов, а не документации; предположение выглядит установленным фактом;
- turbo INT8 почти потерял обсуждение доступа к DBC, риска перегрузить FineBI
через API и необходимости ограничить частоту запросов;
- medium превратил поручение посчитать объём и квоту Teradata в плохо читаемое
«нам требование это продать… конкретный объём в продате квоту»;
- GigaAM один раз заменил «МТС хочет продать дата-рентген» на «ты хочешь
продать дата-рентген», хотя соседняя фраза восстанавливает инициатора;
- ключ поиска `IMSI плюс время` не сохранился точно ни в одном профиле;
- у medium после фактического окончания RSQM появился одиночный сегмент «В».
Длинных повторяющихся или полностью выдуманных фрагментов после обновления
проверяющие не нашли. Общий недостаток всех профилей — отсутствие надёжного
разделения по участникам, что ограничивает пригодность для формального протокола.
## Вывод
- `large-v3-turbo` реально работает с OpenVINO 2026.3 в вариантах INT8 и FP16.
- Turbo INT8 оказался на 16% быстрее medium INT8 и снизил суммарный WER с
25,3% до 24,0%. Это лучший OpenVINO-профиль по численным показателям на
данном CPU, но не по независимой оценке сохранности содержания и читаемости.
- Turbo FP16 на этом CPU на 49% медленнее turbo INT8 и не дал выигрыша по WER.
Его стоит оставлять доступным для явного выбора и других устройств, но не
рекомендовать как основной CPU-профиль.
- GigaAM RNN-T остаётся самым быстрым и лучше всех расставляет пунктуацию. Он
уступает turbo по WER и сильнее загружает CPU, но оба независимых проверяющих
признали его лучшим для чтения и сохранения делового содержания.
- У turbo INT8 пунктуация нестабильна: на RSQM её почти нет. Для готового
протокола может потребоваться последующая расстановка пунктуации.
- Автоматических предупреждений о повторах или потере хвоста после обновления
не было; ручная проверка нашла у medium одиночный ложный сегмент в конце RSQM.
- Модель по умолчанию и порядок `--device auto` оставлены без изменений. Решение
об их изменении требует отдельной продуктовой задачи.