docs: бенчмарк качества транскрипции (2026-03-23)
Детальное сравнение medium/large-v3 × OpenVINO/CTranslate2/Whisper.ai на записи совещания 14:41, русский язык, AMD Ryzen 7 8845H. Рабочий документ для разработки AMD-ускорения. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
6f7e61c779
commit
2a2f6666cf
@@ -0,0 +1,123 @@
|
|||||||
|
# Бенчмарк: качество и скорость транскрипции
|
||||||
|
|
||||||
|
**Дата**: 2026-03-23
|
||||||
|
|
||||||
|
## Цель
|
||||||
|
|
||||||
|
Сравнить качество распознавания нашего приложения (local-transcriber) с облачным
|
||||||
|
сервисом Whisper.ai, подобрать оптимальную конфигурацию бэкенд/модель/compute_type.
|
||||||
|
|
||||||
|
## Тестовый стенд
|
||||||
|
|
||||||
|
- **CPU**: AMD Ryzen 7 8845H w/ Radeon 780M (3.80 GHz), 8 ядер
|
||||||
|
- **GPU**: нет NVIDIA (нет CUDA), есть встроенный Radeon 780M iGPU + Ryzen AI NPU (XDNA)
|
||||||
|
- **ОС**: Windows 11 Enterprise
|
||||||
|
- **Запись**: совещание 3 участников, 14:41, русский язык, микрофон ноутбука
|
||||||
|
|
||||||
|
## Конфигурации
|
||||||
|
|
||||||
|
| # | Модель | Бэкенд | compute_type | Устройство |
|
||||||
|
|---|--------|--------|--------------|------------|
|
||||||
|
| 1 | medium | OpenVINO | fp16 | CPU |
|
||||||
|
| 2 | large-v3 | OpenVINO | fp16 | CPU |
|
||||||
|
| 3 | medium | CTranslate2 (faster-whisper) | float32 | CPU |
|
||||||
|
| 4 | medium | CTranslate2 (faster-whisper) | int8_float32 | CPU |
|
||||||
|
| 5 | — | Whisper.ai (облако) | — | — |
|
||||||
|
|
||||||
|
## Результаты: скорость
|
||||||
|
|
||||||
|
| # | Конфигурация | Время, с | Коэфф. к реалтайму (14:41 = 881с) |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 1 | medium, OpenVINO fp16 | **~240** | 0.27x |
|
||||||
|
| 2 | large-v3, OpenVINO fp16 | ~503 | 0.57x |
|
||||||
|
| 4 | medium, CT2 int8_float32 | ~599 | 0.68x |
|
||||||
|
| 3 | medium, CT2 float32 | ~881 | 1.0x |
|
||||||
|
|
||||||
|
## Результаты: качество
|
||||||
|
|
||||||
|
Для оценки выбраны маркерные фразы — технические термины, сложная разговорная речь,
|
||||||
|
имена собственные. Каждый маркер проверен вручную по контексту записи.
|
||||||
|
|
||||||
|
### Техтермины (английские в русской речи)
|
||||||
|
|
||||||
|
| Термин | #1 OV fp16 | #2 large OV | #3 CT2 f32 | #4 CT2 int8f32 | #5 Whisper.ai |
|
||||||
|
|--------|-----------|-------------|------------|----------------|---------------|
|
||||||
|
| DWH | ✅ DWH | ❌ ДВХ | ⚠️ ДВХ | ✅ DWH | ⚠️ dvh |
|
||||||
|
| Teradata | ✅ TeraData | ⚠️ тирадат | ⚠️ Тирадату | ✅ Teradata | ⚠️ тирадата |
|
||||||
|
| NiFi | ✅ NiFi | ❌ "на файл" | ⚠️ Найфай | ✅ NiFi | ⚠️ фай |
|
||||||
|
| FineBI | ✅ fineBI | ❌ "фанбой" | ✅ FNBI | ✅ finebi/FNBI | ⚠️ FineBI/NBI |
|
||||||
|
| Alation | ❌ "лэйшене" | ❌ "валаши" | ✅ Allation | ✅ Allation | ✅ Allation |
|
||||||
|
| ETL | ❌ ETA | ❌ "и ты или" | ✅ ETL | ✅ ETL | ✅ ETL |
|
||||||
|
| DBC Tables V | ✅ | ❌ "деби си" | ✅ | ✅ | ✅ |
|
||||||
|
| OpenLineage | ⚠️ OpenLinage | ⚠️ "open lineage и о" | ✅ OpenLinage.io | ✅ OpenLinage.io | ✅ Open Lineage.io |
|
||||||
|
|
||||||
|
### Русская разговорная речь
|
||||||
|
|
||||||
|
| Фраза (правильно) | #1 OV fp16 | #2 large OV | #3 CT2 f32 | #4 CT2 int8f32 | #5 Whisper.ai |
|
||||||
|
|--------------------|-----------|-------------|------------|----------------|---------------|
|
||||||
|
| "на другую мониторочку" | ❌ "другом не торчка" | ❌ "другому и" | ✅ "мониторчику" | ⚠️ "мою точку" | ✅ "мониторочку" |
|
||||||
|
| "верхнеуровневое" | ⚠️ "верхверх верхне..." | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
| "датарентген" | ❌ "госпиталин ген" | ❌ "господа тренды" | ✅ "даторентген" | ✅ "даторентген" | ✅ "датарентген" |
|
||||||
|
| "девовские схемы" | ✅ | ❌ "девушки схемы" | ✅ | ✅ | ✅ |
|
||||||
|
| "с накиданными правами" | ✅ | ❌ "накиданных бровами" | ✅ | ✅ | ✅ |
|
||||||
|
| "Вьюхи" | ❌ "в юхе" | — | ✅ "Вьюхи" | ⚠️ "Yuhi" | ❌ "в юхе" |
|
||||||
|
|
||||||
|
### Структура и пунктуация
|
||||||
|
|
||||||
|
| Аспект | #1 OV fp16 | #2 large OV | #3 CT2 f32 | #4 CT2 int8f32 | #5 Whisper.ai |
|
||||||
|
|--------|-----------|-------------|------------|----------------|---------------|
|
||||||
|
| Пунктуация | слабая | слабая | хорошая | хорошая | средняя |
|
||||||
|
| Длина сегментов | ~1 мин | ~1 мин | ~1 мин | ~1 мин | 2–30 сек |
|
||||||
|
| Диаризация | нет | нет | нет | нет | есть (условная) |
|
||||||
|
|
||||||
|
## Ключевые выводы
|
||||||
|
|
||||||
|
### 1. OpenVINO fp16 ухудшает качество medium
|
||||||
|
|
||||||
|
OpenVINO даёт **3.7x ускорение**, но fp16-квантизация на CPU вносит заметные ошибки
|
||||||
|
в распознавание нечёткой русской речи ("госпиталин ген", "ETA"). При этом английские
|
||||||
|
техтермины (DWH, NiFi, FineBI) распознаются хорошо — видимо, они более «чёткие»
|
||||||
|
акустически.
|
||||||
|
|
||||||
|
### 2. large-v3 через OpenVINO — хуже medium
|
||||||
|
|
||||||
|
Удивительный результат: large-v3 с OpenVINO fp16 деградировал по всем параметрам.
|
||||||
|
FineBI → "фанбой", NiFi → "на файл", девовские → "девушки". Гипотеза: fp16 на CPU
|
||||||
|
бьёт сильнее по большим моделям из-за накопления ошибок округления.
|
||||||
|
|
||||||
|
### 3. CTranslate2 float32 — лучшее качество
|
||||||
|
|
||||||
|
Сравнимо с облачным Whisper.ai, а на некоторых маркерах лучше (Вьюхи, DWH).
|
||||||
|
Но **3.7x медленнее** OpenVINO — неприемлемо для длинных записей.
|
||||||
|
|
||||||
|
### 4. int8_float32 — оптимальный баланс
|
||||||
|
|
||||||
|
Mixed precision (int8 матрицы, float32 аккумулятор) даёт:
|
||||||
|
- **1.5x ускорение** vs float32 (599с vs 881с)
|
||||||
|
- Качество практически идентичное float32
|
||||||
|
- Техтермины DWH/Teradata/NiFi даже лучше, чем у float32
|
||||||
|
|
||||||
|
### 5. Whisper.ai — диаризация как преимущество
|
||||||
|
|
||||||
|
Единственное значимое преимущество облачного сервиса — диаризация спикеров.
|
||||||
|
По качеству распознавания наше приложение с CT2 int8_float32 на уровне или лучше.
|
||||||
|
|
||||||
|
## Рекомендации
|
||||||
|
|
||||||
|
### Краткосрочно
|
||||||
|
|
||||||
|
- **Дефолт для CPU без CUDA**: рассмотреть `int8_float32` вместо `float32` — 1.5x быстрее
|
||||||
|
при сопоставимом качестве.
|
||||||
|
- **OpenVINO fp16 оставить** как быстрый вариант — для случаев, когда скорость важнее
|
||||||
|
точности (превью, черновые транскрипты).
|
||||||
|
|
||||||
|
### Среднесрочно
|
||||||
|
|
||||||
|
- **DirectML бэкенд** для AMD Radeon iGPU — через onnxruntime-directml можно задействовать
|
||||||
|
Radeon 780M. Float16 на GPU (в отличие от CPU-квантизации) не должен терять качество.
|
||||||
|
Потенциально 3–5x ускорение при сохранении качества float32.
|
||||||
|
|
||||||
|
### Долгосрочно
|
||||||
|
|
||||||
|
- **Ryzen AI NPU (XDNA)** — AMD развивает поддержку, но tooling пока сырой.
|
||||||
|
- **Диаризация** — добавить идентификацию спикеров (pyannote-audio или аналоги).
|
||||||
Reference in New Issue
Block a user