- Зачем:
- зафиксировать в master результат эксперимента с Parakeet-бэкендом:
что проверяли, какие цифры получили, почему оставили Whisper как дефолт.
Знания доступны, код — в экспериментальной ветке feature/parakeet-backend.
- Что:
- docs/adr/005-parakeet-evaluation.md — полный контекст решения: гипотеза,
методология, метрики скорости (Parakeet 2.7x быстрее, -35% RAM),
качество (Summary utility 2-3/5 vs 4/5 у Whisper), систематические
проблемы модели на тихой русской речи, VAD-тюнинг не помог, условия
пересмотра решения в будущем (английский / live-captioning / русские
specialized-модели через onnx-asr).
- docs/gpu.md — короткая заметка под «Потенциальные направления развития»
со ссылкой на ADR-005.
- Проверка:
- cat docs/adr/005-parakeet-evaluation.md.
- grep -A5 "Parakeet TDT — проверено" docs/gpu.md.
- ветка feature/parakeet-backend сохранена и не удаляется.
7.0 KiB
ADR-005: NVIDIA Parakeet TDT — оценено, отклонено для дефолтного use case
Статус: Отклонено (оставлено в экспериментальной ветке) Дата: 2026-04-19
Контекст
ADR-003 и ADR-004 зафиксировали стратегию: CTranslate2 на CPU (качество) +
OpenVINO (скорость на x86). Оба бэкенда — Whisper. Возникла гипотеза, что
NVIDIA Parakeet TDT 0.6B v3 может выйти за пределы этого trade-off: модель
заявлена multilingual (25 языков включая русский), имеет ONNX-порт
istupakov/parakeet-tdt-0.6b-v3-onnx,
работает через onnx-asr + Silero VAD. Есть позитивные отзывы (напр.
приложение Handy использует Parakeet для dictation в реальном времени).
Основное применение проекта — транскрипция русскоязычных ИТ-встреч (ментор ↔ менти, ~15–60 мин, ноутбучный микрофон). Если Parakeet обойдёт Whisper medium int8 по скорости при сравнимом качестве, или по качеству при сравнимой скорости — это основание поменять дефолт.
Эксперимент
Реализован полный бэкенд в ветке feature/parakeet-backend (ONNX Runtime CPU EP,
Silero VAD, cache-first model loading). Прогнан автоматический бенчмарк
на двух 15-минутных отрывках реальных установочных встреч
(scripts/quality_bench.py в ветке), CPU Intel i7-11800H.
Качество оценивал агент-судья по шкале 1–5 по критериям completeness / term accuracy / fluency / summary utility — на пригодность транскрипта для построения конспекта без возврата к аудио.
Скорость и ресурсы
| Отрывок | Бэкенд | Wall | RTFx | Peak RSS |
|---|---|---|---|---|
| artur-intro (15 мин) | parakeet-int8 | 129.5s | 6.92x | 2.21 GB |
| artur-intro (15 мин) | openvino-medium-int8 | 354.2s | 2.54x | 3.50 GB |
| mar15-mid (15 мин) | parakeet-int8 | 159.6s | 5.64x | 2.65 GB |
| mar15-mid (15 мин) | openvino-medium-int8 | 428.4s | 2.10x | 3.52 GB |
Parakeet в 2.7x быстрее и использует на ~35% меньше RAM.
Качество (Summary utility, 1–5)
| Отрывок | Parakeet int8 | Whisper medium int8 |
|---|---|---|
| artur-intro | 2 | 4 |
| mar15-mid | 3 | 4 |
Систематические проблемы Parakeet на русской речи с низкой громкостью:
- Редукция коротких реплик менти до
Mm-hmm/Yeah— теряется значительная часть диалога (низкий уровень микрофона менти). - Вставки кусков польского/испанского/немецкого посреди русской речи
(
Miejsce w sześć zajmie,Que salviosa,Genial positions). - Сильное искажение ИТ-терминов и бытовых выражений —
Pretty subsвместо «пройти собес»,Состем основвместо «система контроля версий»,І на глуп Джойвместоinner loop join.
Whisper medium int8 даёт связный русский текст с нормальной пунктуацией;
искажения присутствуют (капка вместо Kafka, одна галлюцинация
«Добро пожаловать в наш канал!» на паузе), но не критичны для конспекта.
Попытка тюнинга — Silero VAD threshold
Гипотеза: дефолтный threshold=0.5 обрезает тихие реплики менти. Проверено
на 0.5/0.3/0.2 — снижение порога уменьшает объём транскрипта
(Parakeet хуже декодирует длинные склеенные сегменты с разреженной речью)
и не снижает частоту Mm-hmm-редукций. Проблема inherent для модели
на тихом русском диалоге, не артефакт VAD.
Решение
Parakeet TDT 0.6B v3 не принимается как дефолтный или опциональный бэкенд для целевого use case. Whisper medium int8 остаётся предпочтительным — несмотря на 2.7x проигрыш по скорости, он даёт транскрипт, из которого можно сделать конспект без возврата к аудио. Для русской речи с варьирующейся громкостью микрофона Parakeet v3 недостаточно устойчив.
Код бэкенда не мержится в master. Экспериментальная ветка
feature/parakeet-backend сохраняется как reference для будущих экспериментов.
Последствия
- Архитектура pluggable backends (ADR-003) подтвердила ценность: интегрировать и оценить новый бэкенд оказалось недорого.
- Surface area master не растёт: нет
--device parakeet-cpu, нет зависимостиonnx-asr, нет новой ветки в CLI. - Если в будущем появится интерес — ветка
feature/parakeet-backendсодержит готовый бэкенд (13 задач, ~19 тестов), скрипты бенчмарка и VAD-тюнинга.
Когда стоит пересмотреть решение
- Англоязычный контент — Parakeet обучался преимущественно на английском, для native English встреч выигрыш в скорости может окупить качество.
- Live-captioning / dictation (как в Handy) — другой use case, близкий микрофон + короткие фразы, проблемы редукции неактуальны.
- Русские specialized-модели через ту же обвязку
onnx-asr:gigaam-v3-rnnt(SberDevices),nemo-fastconformer-ru-rnnt(NVIDIA),t-one-ctc(T-Bank). Это отдельная ветка экспериментов, не Parakeet. - Слабые машины с ограниченной RAM — Parakeet 2.2 GB vs Whisper 3.5 GB на 15-мин аудио. Если важна RAM-экономия и английский контент.