# ADR-004: Дефолты compute_type и стратегия ускорения **Статус**: Принято **Дата**: 2026-03-23 ## Контекст После внедрения OpenVINO (ADR-003) дефолты compute_type выбирались из соображений скорости: fp16 для OpenVINO, float32 для CPU. Бенчмарк на реальной записи совещания (14:41, русский, 3 участника, AMD Ryzen 7 8845H) показал, что квантизация существенно влияет на качество распознавания русской речи. ### Результаты бенчмарка (medium модель) | Бэкенд + compute_type | Время | Качество | |---|---|---| | OpenVINO fp16 | ~240с | Среднее — грубые ошибки на нечёткой речи | | CTranslate2 int8_float32 | ~599с | Отличное — на уровне облачного Whisper.ai | | CTranslate2 float32 | ~881с | Отличное (эталон) | | OpenVINO fp16, large-v3 | ~503с | Плохое — хуже medium на том же бэкенде | **Ключевые наблюдения:** 1. OpenVINO fp16 хорошо распознаёт «чёткие» англоязычные термины (DWH, NiFi, FineBI), но ломается на быстрой разговорной русской речи ("датарентген" → "госпиталин ген"). 2. large-v3 через OpenVINO fp16 деградирует сильнее medium — ошибки округления накапливаются в большей модели. 3. CTranslate2 int8_float32 (mixed precision: int8 матрицы, float32 аккумулятор) даёт качество, сопоставимое с float32, при 1.5x ускорении. ## Решение ### Дефолт для CPU: оставить float32 int8_float32 показал отличные результаты, но выборка одна. Оставляем float32 как безопасный дефолт — пользователи, которым важна скорость, могут явно указать `--compute-type int8_float32`. ### OpenVINO — оставить как есть OpenVINO fp16 остаётся дефолтом для OpenVINO-бэкенда. Это осознанный trade-off: 3.7x ускорение за счёт потери качества на сложных участках. Для случаев, когда нужно максимальное качество, пользователь выбирает `--device cpu`. ### Направление ускорения: DirectML Для получения скорости GPU при сохранении качества float16 — нужен новый бэкенд на базе onnxruntime-directml. DirectX 12 работает с любым GPU на Windows, включая AMD Radeon iGPU. Float16 на реальном GPU (аппаратный) не имеет проблем CPU-квантизации. Приоритет реализации: 1. DirectML бэкенд (Radeon iGPU, потенциально Intel Arc) 2. Ryzen AI NPU (XDNA) — когда tooling от AMD дозреет ## Последствия - Дефолты не меняются — обратная совместимость сохранена - Пользователи с AMD получают рекомендацию `--compute-type int8_float32` в документации - Архитектура (ADR-003) уже поддерживает добавление DirectML как нового бэкенда