- Зачем: - пользователям без NVIDIA нужен самый быстрый и читаемый CPU-профиль без дополнительных параметров. - Что: - auto-политика изменена на CUDA при наличии nvidia-smi, иначе ONNX GigaAM RNN-T int8. - сохранён приоритет явных значений CLI и конфигурации для OpenVINO и FasterWhisper CPU. - обновлены тесты, README, PRD, ADR, GPU-документация и вывод benchmark. - Проверка: - uv run pytest -q: 232 passed, 1 skipped. - uv lock --check и git diff --cached --check.
349 lines
26 KiB
Markdown
349 lines
26 KiB
Markdown
# Сравнение OpenVINO large-v3-turbo с CPU-профилями
|
||
|
||
**Дата:** 2026-08-12
|
||
|
||
**Статус:** завершённое сравнение на трёх русскоязычных встречах и двух CPU
|
||
|
||
## Цель
|
||
|
||
Проверить обновление 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 появился одиночный сегмент «В».
|
||
|
||
Длинных повторяющихся или полностью выдуманных фрагментов после обновления
|
||
проверяющие не нашли. Общий недостаток всех профилей — отсутствие надёжного
|
||
разделения по участникам, что ограничивает пригодность для формального протокола.
|
||
|
||
## Повторный прогон на AMD Ryzen 7 8845H
|
||
|
||
Повторный прогон выполнен на втором ноутбуке тем же коммитом, на тех же шести
|
||
файлах и с теми же параметрами. Размеры и SHA-256 всех файлов совпали с
|
||
манифестом. Результаты Intel выше не перезаписывались.
|
||
|
||
### Оборудование и условия
|
||
|
||
- ноутбук Lenovo 83D5;
|
||
- AMD Ryzen 7 8845H, 8 ядер / 16 логических процессоров;
|
||
- 32 ГиБ LPDDR5X, четыре чипа Micron, фактическая скорость 6400 MT/s;
|
||
- Windows 11 Корпоративная, сборка 26200;
|
||
- схема питания «Сбалансированная»;
|
||
- OpenVINO 2026.3.0, OpenVINO GenAI и Tokenizers 2026.3.0.0;
|
||
- Python 3.13.13;
|
||
- язык во всех командах задан явно: `--language ru`;
|
||
- кэш каждой модели предварительно прогрет, скачивание не включено во время;
|
||
- загрузка CPU и свободная память опрашивались раз в две секунды.
|
||
|
||
Во время всех прогонов ноутбук оставался пригодным для интерактивной работы.
|
||
Минимум свободной памяти ниже, чем на Intel, из-за 32 ГиБ физической памяти и
|
||
фоновой нагрузки; это показатель всей системы, а не потребления одной модели.
|
||
|
||
### Сводка по трём записям
|
||
|
||
| Профиль | Время | RTFx | WER | Пунктуация / 1000 слов | Средний / пиковый CPU | Минимум свободной памяти |
|
||
|---|---:|---:|---:|---:|---:|---:|
|
||
| OpenVINO medium INT8 | 438,5 с | 5,97× | 22,9% | 193 | 59,2% / 89% | 6,65 ГиБ |
|
||
| **OpenVINO large-v3-turbo INT8** | **267,4 с** | **9,79×** | **19,6%** | 108 | 57,4% / 72% | 8,93 ГиБ |
|
||
| OpenVINO large-v3-turbo FP16 | 333,6 с | 7,85× | 20,1% | 114 | 59,0% / 78% | 8,39 ГиБ |
|
||
| **ONNX GigaAM v3 E2E RNN-T INT8** | **194,8 с** | **13,44×** | 26,9% | **290** | 56,2% / 82% | 11,71 ГиБ |
|
||
|
||
Для `medium` на RSQM получились три измеряемых времени: 158,8, 118,3 и
|
||
129,3 секунды. Все три транскрипта и отдельный прогревочный проход содержательно
|
||
совпали. В таблице использована медиана 129,3 секунды, чтобы не выбирать
|
||
произвольно единичный фоновый выброс.
|
||
|
||
### По отдельным записям
|
||
|
||
| Запись | Профиль | Время | RTFx | WER | Пунктуация / 1000 слов |
|
||
|---|---|---:|---:|---:|---:|
|
||
| BDMA | medium INT8 | 140,3 с | 6,35× | 25,0% | 202 |
|
||
| BDMA | turbo INT8 | **88,8 с** | **10,03×** | 24,5% | 55 |
|
||
| BDMA | turbo FP16 | 109,1 с | 8,16× | **24,4%** | 61 |
|
||
| BDMA | GigaAM RNN-T INT8 | **67,5 с** | **13,21×** | 29,0% | **326** |
|
||
| RSQM | medium INT8 | 129,3 с | 6,53× | 20,2% | **175** |
|
||
| RSQM | turbo INT8 | **82,1 с** | **10,28×** | **16,7%** | 61 |
|
||
| RSQM | turbo FP16 | 104,6 с | 8,07× | 20,4% | 48 |
|
||
| RSQM | GigaAM RNN-T INT8 | **58,6 с** | **14,41×** | 25,4% | **286** |
|
||
| DataCat | medium INT8 | 168,9 с | 5,22× | 23,2% | **199** |
|
||
| DataCat | turbo INT8 | **96,5 с** | **9,14×** | 18,0% | 178 |
|
||
| DataCat | turbo FP16 | 119,8 с | 7,36× | **16,8%** | 197 |
|
||
| DataCat | GigaAM RNN-T INT8 | **68,7 с** | **12,83×** | 26,4% | **265** |
|
||
|
||
### Повторы `medium` на паузах
|
||
|
||
На линии 2026.0 один контрольный прогон RSQM на Intel содержал 11 одинаковых
|
||
последовательных сегментов. После обновления на Ryzen выполнены четыре прохода
|
||
того же файла: один прогревочный и три измеряемых. Во всех четырёх получены
|
||
одинаковые 152 сегмента, объединённые форматтером в 17 абзацев. Детектор серий
|
||
из четырёх и более одинаковых сегментов не сработал, различий в содержательной
|
||
части файлов нет, ложного хвоста также нет.
|
||
|
||
На этом контрольном файле повтор после OpenVINO 2026.3 устойчиво не
|
||
воспроизводится на двух машинах. Это сильнее единичного успешного запуска, но
|
||
не доказывает устранение всего класса Whisper-галлюцинаций на тишине: набор
|
||
содержит только одну ранее проблемную запись.
|
||
|
||
### Отличия Ryzen от Intel
|
||
|
||
- `medium` показал практически одинаковое суммарное время: 438,5 против
|
||
436,7 секунды.
|
||
- Turbo INT8 на Ryzen быстрее на 27%: 267,4 против 365,5 секунды; FP16 быстрее
|
||
на 39%: 333,6 против 545,0 секунды.
|
||
- GigaAM на Ryzen быстрее на 27%: 194,8 против 265,7 секунды.
|
||
- На Ryzen Turbo INT8 ускоряет обработку относительно `medium` на 39%, а
|
||
GigaAM — на 56%.
|
||
- Численные WER на Ryzen ниже у всех четырёх профилей. Поскольку файлы,
|
||
версии библиотек и заявленная методика совпадают, но сами выходы различаются.
|
||
Сравнение характеризует всю среду выполнения; приписывать разницу только
|
||
архитектуре CPU без отдельного исследования нельзя.
|
||
- Пунктуация Turbo остаётся нестабильной: на Ryzen она лучше результата Intel
|
||
для RSQM, но всё ещё значительно реже, чем у `medium` и GigaAM.
|
||
|
||
### Независимая оценка качества на Ryzen
|
||
|
||
Как и на первом ноутбуке, два субагента читали полные транскрипты вслепую, без
|
||
названий профилей и таблицы численных метрик. Их оценки разошлись по ожидаемой
|
||
причине: один ставил выше готовность текста к чтению, второй — точность
|
||
технических деталей.
|
||
|
||
| Профиль | Читаемость | Для конспекта | Для протокола |
|
||
|---|---:|---:|---:|
|
||
| ONNX GigaAM RNN-T INT8 | **3/5** | **4/5** | **3/5** |
|
||
| OpenVINO medium INT8 | **3/5** | 3/5 | 2/5 |
|
||
| OpenVINO turbo FP16 | 2/5 | 3/5 | 2/5 |
|
||
| OpenVINO turbo INT8 | 2/5 | 2/5 | 2/5 |
|
||
|
||
По читаемости GigaAM снова занял первое место: он лучше размечает смысловые
|
||
границы, сохраняет бытовые и организационные реплики и требует меньше ручной
|
||
чистки для чернового конспекта. `medium` оказался вторым. У обоих Turbo начало
|
||
нескольких записей превращается в длинные блоки нижнего регистра почти без
|
||
пунктуации. Ни один вариант не признан готовым формальным протоколом без сверки.
|
||
|
||
| Профиль | Смысл | Термины | Полнота | Нет повторов и выдумок |
|
||
|---|---:|---:|---:|---:|
|
||
| OpenVINO turbo FP16 | **4/5** | **4/5** | 4/5 | **4/5** |
|
||
| OpenVINO turbo INT8 | 4/5 | **4/5** | 4/5 | **4/5** |
|
||
| OpenVINO medium INT8 | 4/5 | **4/5** | 4/5 | 3/5 |
|
||
| ONNX GigaAM RNN-T INT8 | 4/5 | 3/5 | **5/5** | 3/5 |
|
||
|
||
По технической сохранности первым стал Turbo FP16, особенно на DataCat; Turbo
|
||
INT8 почти равен ему. Они лучше удерживают `FineBI`, `OpenLineage`, `Spark`,
|
||
`XML`, `DBC TablesV/ColumnsV`, `Open Platform` и архитектурные связи. GigaAM
|
||
самый полный, но чаще заменяет неразобранное гладко звучащими ложными терминами.
|
||
|
||
Наиболее опасные места:
|
||
|
||
- GigaAM потерял `IMSI` в требуемом ключе `IMSI плюс время`, исказил основание
|
||
оставить MPP-вычисления в Teradata и не сохранил Alation как технический
|
||
ориентир интеграции с FineBI;
|
||
- `medium` заменил Tele2 на `TeraData 2` и «админскую учётку» на «учётку от
|
||
Минска», то есть правдоподобно изменил адресата и источник доступа;
|
||
- Turbo INT8 почти потерял риск DDoS FineBI через API и необходимость
|
||
ограничивать частоту запросов; в другом месте ответ о production-базах
|
||
локально перевёрнут;
|
||
- Turbo FP16 хуже остальных передал `edge cases` на RSQM и потерял поручение
|
||
оценить требования и квоту Teradata, но лучше всего сохранил технически
|
||
насыщенный DataCat.
|
||
|
||
Ни один проверяющий не нашёл длинных повторяющихся или автономно выдуманных
|
||
блоков. Основной остаточный риск всех профилей — локальная правдоподобная
|
||
подстановка термина, числа или адресата.
|
||
|
||
### Что это означает для профиля по умолчанию
|
||
|
||
Результаты поддерживают ONNX GigaAM RNN-T как основной CPU-профиль: он быстрее
|
||
всех на обеих машинах, дважды занял первое место по читаемости и пригодности
|
||
для конспекта и использует VAD. После обсуждения принята простая политика:
|
||
`--device auto` выбирает CUDA при наличии `nvidia-smi`, иначе ONNX.
|
||
|
||
Ограничения выбора сохраняются:
|
||
|
||
- GigaAM ориентирован на русский язык и хуже сохраняет латиницу, аббревиатуры,
|
||
названия систем и компаний;
|
||
- OpenVINO Whisper остаётся многоязычным путём и умеет использовать Intel GPU;
|
||
- Turbo лучше GigaAM по WER и техническим терминам, хотя хуже подготовлен для
|
||
непосредственного чтения;
|
||
- изменение существующего auto-пути является несовместимым изменением поведения;
|
||
явные значения из CLI и конфигурации остаются способом сохранить прежний
|
||
OpenVINO/Whisper-профиль или выбрать Turbo для технически насыщенных встреч.
|
||
|
||
## Вывод
|
||
|
||
- `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.
|
||
- В самом benchmark-коммите модель по умолчанию и порядок `--device auto` не
|
||
менялись; по итогам анализа отдельно принято решение использовать ONNX на
|
||
машинах без CUDA.
|
||
- Повторный Ryzen-прогон подтвердил, что прежний блок из 11 повторов `medium`
|
||
не воспроизводится: четыре последовательных прохода дали одинаковый текст без
|
||
повторов и ложного хвоста. Это подтверждение для контрольного файла, а не
|
||
гарантия устранения всех Whisper-галлюцинаций на тишине.
|
||
- Для русской речи на CPU ONNX GigaAM RNN-T выглядит лучшим пользовательским
|
||
дефолтом по скорости и готовности текста к чтению. OpenVINO сохраняет сильные
|
||
аргументы для Intel GPU, других языков и технически насыщенных записей.
|