# 03. Выбор моделей: распознавание речи и классификация

Версия 1.0 от 2026-10-02. Принцип: **финальный выбор — только по бенчмарку на реальных данных
заказчика** (PoC, см. 05). Публичные метрики на «чистых» датасетах плохо переносятся на телефонное
аудио, поэтому здесь даны ориентиры и критерии, а не вердикты.

## 1. Критерии выбора ASR

1. Качество на телефонном русском (WER на нашей разметке) — главный критерий.
2. Коммерчески совместимая лицензия (без NC-ограничений).
3. Скорость (RTF) на целевом GPU при батчинге → определяет размер кластера и бюджет.
4. Наличие word-level таймкодов (нативно или через forced alignment).
5. 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)

1. **Эталон ASR:** ручная дословная транскрипция 60–90 мин аудио, стратифицированная по типам
   (обычные, автоответчики, шумные, короткие, «трудные»). Метрики: WER/CER общие и по слоям;
   сравнение моделей между собой важнее абсолютных чисел.
2. **Эталон классификации:** 300–500 звонков, мультилейбл по таксономии v1 (совместно с бизнесом).
   Метрики: precision/recall/F1 по каждому классу; отдельно бинарная задача «живой разговор vs
   всё остальное» — она определяет достоверность главных KPI руководства.
3. **Скорость:** RTF на целевой карте при реальном батчинге, включая предобработку; стоимость
   обработки часа аудио (₽/ч) — амортизация + электроэнергия.
4. **Регресс-набор:** зафиксированная выборка (ASR + классификация) остаётся в CI моделей —
   любой апгрейд модели/промптов проходит по ней перед выкаткой.

## 5. Вердикты, которые фиксирует PoC

- Модель ASR для прода (ожидание: Whisper large-v3-turbo; проверить против large-v3 и, при
  юридической возможности, GigaAM-v2).
- Нужна ли модель пунктуации.
- Финальный промпт/схема классификатора и пороги уверенности.
- Фактический RTF и стоимость ₽/час → финальный расчёт мощностей под объём заказчика.
