docs(openvino): добавлены результаты сравнения turbo

- Зачем:
  - нужна практическая оценка нового CPU-профиля на русских встречах.
- Что:
  - зафиксированы скорость, WER, пунктуация, нагрузка и отзывчивость.
  - добавлены две независимые оценки качества и рекомендации пользователям.
- Проверка:
  - uv run pytest.
  - реальные прогоны четырёх профилей на трёх записях.
This commit is contained in:
Dmitry Dementiev
2026-08-12 08:46:46 +03:00
parent a65e5039f5
commit f043f4e3b5
3 changed files with 210 additions and 3 deletions
@@ -0,0 +1,188 @@
# Сравнение 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` оставлены без изменений. Решение
об их изменении требует отдельной продуктовой задачи.