From f043f4e3b55d5234f5768ea2d6c15154f68d7146 Mon Sep 17 00:00:00 2001 From: Dmitry Dementiev Date: Wed, 12 Aug 2026 08:46:46 +0300 Subject: [PATCH] =?UTF-8?q?docs(openvino):=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB?= =?UTF-8?q?=D1=8C=D1=82=D0=B0=D1=82=D1=8B=20=D1=81=D1=80=D0=B0=D0=B2=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20turbo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - нужна практическая оценка нового CPU-профиля на русских встречах. - Что: - зафиксированы скорость, WER, пунктуация, нагрузка и отзывчивость. - добавлены две независимые оценки качества и рекомендации пользователям. - Проверка: - uv run pytest. - реальные прогоны четырёх профилей на трёх записях. --- README.md | 12 +- ...8-12-openvino-large-v3-turbo-comparison.md | 188 ++++++++++++++++++ docs/gpu.md | 13 ++ 3 files changed, 210 insertions(+), 3 deletions(-) create mode 100644 docs/benchmarks/2026-08-12-openvino-large-v3-turbo-comparison.md diff --git a/README.md b/README.md index 1e9cd3a..e555a7f 100644 --- a/README.md +++ b/README.md @@ -263,7 +263,8 @@ language = "en" - **Макс. качество (NVIDIA):** `large-v3` + `--compute-type float16` - **Макс. качество (Intel GPU):** `large-v3` + `--device openvino-gpu` - **Макс. скорость CPU (русский):** `--device onnx --model gigaam-v3` (17-29× RTF, без пунктуации; рекомендуется LLM-нормализация терминов после) -- **CPU с пунктуацией (русский):** `--device openvino-cpu --model medium` (5-6× RTF; для встреч ≤30 мин с равномерной громкостью — на длинных файлах с тихими фрагментами возможны галлюцинации) +- **Быстрый OpenVINO с низким WER:** `--device openvino-cpu --model large-v3-turbo --compute-type int8` (7,2× RTFx на контрольном Intel CPU; пунктуация может быть слабой) +- **OpenVINO для чтения и конспекта:** `--device openvino-cpu --model medium` (около 6× RTFx; независимая оценка показала лучшую сохранность содержания, чем turbo) - **Быстрый тест:** `tiny` — для проверки пайплайна
@@ -276,6 +277,7 @@ language = "en" | `small` | ~460 MB | ~1.5 GB | ★★★ | ★★★ | | `medium` | ~1.5 GB | ~2.5 GB | ★★ | ★★★★ | | `large-v3` | ~3 GB | ~2.5 GB | ★ | ★★★★★ | +| `large-v3-turbo` | ~1 GB | — | ★★★★ | ★★★★ | #### ONNX-модели (`--device onnx`) @@ -331,11 +333,15 @@ device-aware дефолт недоступен для выбранной мод `float16`/`fp16` и `float32` значительно стабильнее на записях >20 минут. > Для OpenVINO `--compute-type` выбирает предквантизированную модель (int8 или fp16), -> а не runtime-параметр. Для `large-v3` по умолчанию выбирается `fp16`. +> а не параметр времени выполнения. Для `large-v3` по умолчанию выбирается +> `fp16`; для `large-v3-turbo` доступны явные варианты `int8` и `fp16`, а +> неявный профиль OpenVINO использует `int8`.
-Подробнее: бенчмарки, OpenVINO, совместимость GPU, результаты тестирования — [docs/gpu.md](docs/gpu.md). +Подробнее: бенчмарки, OpenVINO, совместимость GPU, результаты тестирования — +[docs/gpu.md](docs/gpu.md). Сравнение `large-v3-turbo` с CPU-профилями: +[OpenVINO 2026.3 и large-v3-turbo](docs/benchmarks/2026-08-12-openvino-large-v3-turbo-comparison.md).
Формат вывода diff --git a/docs/benchmarks/2026-08-12-openvino-large-v3-turbo-comparison.md b/docs/benchmarks/2026-08-12-openvino-large-v3-turbo-comparison.md new file mode 100644 index 0000000..5d37edc --- /dev/null +++ b/docs/benchmarks/2026-08-12-openvino-large-v3-turbo-comparison.md @@ -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 ` + --device openvino-cpu ` + --model ` + --compute-type ` + --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` оставлены без изменений. Решение + об их изменении требует отдельной продуктовой задачи. diff --git a/docs/gpu.md b/docs/gpu.md index 1dcb67f..05810a7 100644 --- a/docs/gpu.md +++ b/docs/gpu.md @@ -28,6 +28,8 @@ OpenVINO ускоряет inference на x86 процессорах (Intel и AM - **Модели**: предконвертированные из [HuggingFace](https://huggingface.co/OpenVINO) (int8/fp16) - **Дефолт**: `medium` + `int8` (для `large-v3` автоматически выбирается `fp16`) +- **Быстрый профиль с низким WER**: явный `large-v3-turbo` + `int8`; для + читаемости и сохранности содержания `medium` остаётся предпочтительнее - **Аудиодекодирование**: через PyAV (бандлит FFmpeg), системный ffmpeg не нужен ### Доступные OpenVINO модели @@ -39,9 +41,16 @@ OpenVINO ускоряет inference на x86 процессорах (Intel и AM | small | OpenVINO/whisper-small-int8-ov | — | | medium | OpenVINO/whisper-medium-int8-ov | OpenVINO/whisper-medium-fp16-ov | | large-v3 | OpenVINO/whisper-large-v3-int8-ov | OpenVINO/whisper-large-v3-fp16-ov | +| large-v3-turbo | OpenVINO/whisper-large-v3-turbo-int8-ov | OpenVINO/whisper-large-v3-turbo-fp16-ov | ### Результаты тестирования OpenVINO +Актуальное сравнение OpenVINO 2026.3 на трёх русскоязычных встречах: +[medium, large-v3-turbo и GigaAM](benchmarks/2026-08-12-openvino-large-v3-turbo-comparison.md). +На Intel Core i7-11800H `large-v3-turbo` INT8 обработал 43:37 аудио за +365,5 секунды (7,16× RTFx) при WER 24,0%. FP16 занял 545,0 секунды и получил +WER 24,8%, поэтому для CPU рекомендуется INT8. + Реальные записи рабочих созвонов (русский, техтермины: SQL, PostgreSQL, LDAP, DLP и др.). **Скорость (эталонный файл 16 мин, OpenVINO, medium int8):** @@ -76,6 +85,10 @@ OpenVINO ускоряет inference на x86 процессорах (Intel и AM - **small** — для быстрого сканирования большого объёма видео по маске (`*.mp4`). Ошибки в отдельных словах; для обработки ИИ (МОМ, конспект) рискованно — "рецензия" вместо "лицензия" может исказить смысл. - **medium** — для повседневного использования и обработки ИИ. Ключевые термины верные, единичные ляпы не влияют на смысл конспекта. Оптимальный баланс скорости и качества. - **large-v3** — для важных записей, где нужна дословная точность. Лучшая пунктуация и связность. На OpenVINO (416с) быстрее, чем medium на чистом CPU (734с) — лучшее качество при выше скорости. +- **large-v3-turbo** — явный профиль для CPU с приоритетом скорости и низкого + WER. В проверенном наборе INT8 быстрее и численно точнее medium, но хуже по + независимой оценке читаемости и сохранности содержания; FP16 на CPU пользы + не показал. ## CPU бэкенд (CTranslate2 / faster-whisper)