03. Выбор моделей: распознавание речи и классификация
Версия 1.0 от 2026-10-02. Принцип: финальный выбор — только по бенчмарку на реальных данных заказчика (PoC, см. 05). Публичные метрики на «чистых» датасетах плохо переносятся на телефонное аудио, поэтому здесь даны ориентиры и критерии, а не вердикты.
1. Критерии выбора ASR
- Качество на телефонном русском (WER на нашей разметке) — главный критерий.
- Коммерчески совместимая лицензия (без NC-ограничений).
- Скорость (RTF) на целевом GPU при батчинге → определяет размер кластера и бюджет.
- Наличие word-level таймкодов (нативно или через forced alignment).
- Self-hosted (объём и ПДн исключают облачные API как основной путь).
2. Кандидаты ASR
| Модель | Лицензия | Качество RU (ориентир) | Скорость на GPU (ориентир) | Статус в проекте |
|---|---|---|---|---|
| Whisper large-v3-turbo (809M) | MIT | WER чуть хуже large-v3 (~+1–3 п.п.), русский — уверенно | при батчинге ~50–80× RT на карту класса L40S/A100 | Базовый кандидат — баланс качество/скорость |
| Whisper large-v3 (1.55B) | MIT | один из лучших мультиязычных; телефония портит WER (ориентир 10–25 % на звонках) | ~15–25× RT | Кандидат; резерв качества, если turbo не дотянет |
| GigaAM-v2 (RNNT/CTC), Сбер | веса — некоммерческая лицензия; коммерция — по договору со Сбером | лучшие публичные результаты на русском (Golos-класс датасетов ~2–5 % WER), обучена в т.ч. на телефонии | RNNT заметно быстрее Whisper (~100×+ RT) | Участвует в бенчмарке; в прод — только при разрешении лицензии |
| T-one (Т-Банк) | проверить лицензию в PoC | сильная модель для русского | высокая | Второй эшелон кандидатов |
| Parakeet TDT 0.6B v3 (NVIDIA) | CC-BY-4.0 | русский поддерживается, но слабее специализированных | очень высокая (TDT) | Для сравнения скорости/цены в бенчмарке |
| Vosk (ru) | Apache-2.0 | заметно уступает современным | высокая | Отклонён: качество |
| Облачные API (Yandex SpeechKit и др.) | контракт | высокое | — | Только как калибровка/резерв: на 450 тыс. ч дороговато и упирается в ПДн |
Ориентиры скорости — по публичным бенчмаркам faster-whisper/WhisperX; для планирования мощности (07-deployment.md) принята консервативная 40× реального времени на карту L40S (turbo, батчинг, int8_float16, утилизация 85 %). Реальную цифру фиксируем замером в PoC.
Решение по диаризации
Не требуется: каналы уже разделены. WhisperX-forced-alignment используется только для word-таймкодов.
Пунктуация
Whisper выдаёт пунктуацию из коробки. Если бенчмарк выиграет модель без пунктуации (GigaAM/T-one) — добавляется модель пунктуации для русского (ruBERT-класс, ~CPU/GPU копейки) — учтено в архитектуре.
3. Классификация звонков (контекст)
3.1 Каскад «правила → LLM → человек»
Уровень 0 — аудио/дешёвые признаки (до ASR или сразу после): доля речи по каналам (VAD), длительность, бипы/DTMF, музыка, одна ли сторона говорила. Отсекает очевидные «без ответа», «тишина», короткие сбросы, часть автоответчиков — без затрат LLM.
Уровень 1 — правила по тексту: словари/regex («оставьте сообщение», «перезвоните позднее», самопредставление роботов), стоп-слова, нечёткий поиск обязательных фраз скрипта (rapidfuzz, нормализация текста). Детерминированно, объяснимо, правится бизнесом без релиза.
Уровень 2 — LLM со структурированным выводом (vLLM, JSON-schema): по транскрипту (+признаки уровня 0–1 в промпте) выдаёт строго типизированный вердикт: тип соединения, результат, флаги скрипта, конфликтность, теги, уверенность. Низкая уверенность или противоречие с правилами → уровень 3.
Уровень 3 — очередь ручного контроля: интерфейс разметки; размеченные данные идут в регресс-набор и на периодическую валидацию промптов/правил.
3.2 Выбор LLM
| Вариант | Плюсы | Минусы | Статус |
|---|---|---|---|
| Qwen3-14B / 32B локально (vLLM, Apache-2.0) | копейки за звонок на своём GPU; ПДн не покидают контур; structured outputs | нужно 1–2 GPU | Базовый план |
| РФ-облако LLM (GigaChat/YandexGPT) | не нужно своё GPU для LLM | цена на 6+ млн звонков; ПДн вне контура | Опция по анкете E |
| Western API | — | ПДн, санкционно/юридически | Отклонён |
Оценка нагрузки LLM: ~2–4 тыс. токенов на звонок; в пике бэклога (~70 тыс. звонков/сут) — ~200 млн токейн-запросов/сутки, одна карта L40S с 14B-AWQ (vLLM, батчинг, ~2–4 тыс. ток/с) покрывает это впритык → в прод-конфигурации заложены 2 карты на LLM (см. 07-deployment.md), в steady-state достаточно одной.
4. Методика оценки качества (PoC)
- Эталон ASR: ручная дословная транскрипция 60–90 мин аудио, стратифицированная по типам
(обычные, автоответчики, шумные, короткие, «трудные»). Метрики: WER/CER общие и по слоям; сравнение моделей между собой важнее абсолютных чисел.
- Эталон классификации: 300–500 звонков, мультилейбл по таксономии v1 (совместно с бизнесом).
Метрики: precision/recall/F1 по каждому классу; отдельно бинарная задача «живой разговор vs всё остальное» — она определяет достоверность главных KPI руководства.
- Скорость: RTF на целевой карте при реальном батчинге, включая предобработку; стоимость
обработки часа аудио (₽/ч) — амортизация + электроэнергия.
- Регресс-набор: зафиксированная выборка (ASR + классификация) остаётся в CI моделей —
любой апгрейд модели/промптов проходит по ней перед выкаткой.
5. Вердикты, которые фиксирует PoC
- Модель ASR для прода (ожидание: Whisper large-v3-turbo; проверить против large-v3 и, при
юридической возможности, GigaAM-v2).
- Нужна ли модель пунктуации.
- Финальный промпт/схема классификатора и пороги уверенности.
- Фактический RTF и стоимость ₽/час → финальный расчёт мощностей под объём заказчика.