COALA: контекстные подсказки для распознавания речи с большими списками сущностей
COALA решает боль больших речевых моделей: им трудно распознавать редкие имена, названия и доменные сущности, если список подсказок слишком длинный. Просто положить тысячи кандидатов в prompt плохо: контекст переполняется, а лишние сущности мешают распознаванию. Авторы предлагают сначала оценивать, какие сущности действительно соответствуют аудио, и только затем давать укороченный список в распознаватель.
Метод. COALA использует speech-augmented language model с Whisper-large-v2 encoder и SmolLM2-135M-Instruct как языковой частью. Для каждой сущности модель считает matching score по скрытым состояниям, а обучаемый projector переводит их в discriminative space. Главная техническая часть - два новых objective для multi-entity случаев: MPD-Loss и DPD-Loss, где DPD-Loss формулирует каждую сущность как отдельную бинарную задачу и избегает конкуренции между несколькими правильными словами.
Результаты. На LibriSpeech при N=5000 DPD-Loss достигает Recall#20 99.09% на test-clean и 96.59% на test-other; Recall#50 - 99.60% и 98.17%. В распознавании без фильтрации COALA при N=500 имеет B-WER 20.38 clean и 35.01 other, а при N=1000 - 21.98 и 37.54; при N=5000 возникает OOM на 24 GB GPU. С target identification через DPD-Loss B-WER резко падает: 3.25/9.13 при N=500, 3.86/10.59 при N=1000 и 6.96/15.17 при N=5000.
Ограничения. COALA в unbiased режиме хуже некоторых baselines, поэтому его польза раскрывается именно при наличии длинного biasing list. Top-10 selection принципиально не может покрыть все случаи, где в одной фразе больше 11 целевых сущностей. Кроме того, экспериментальная модель относительно легкая и проверена на LibriSpeech-style setup; реальные контактные книги, шум и мультиязычие могут усложнить задачу.
Фишка из статьи. Самая важная инженерная деталь - OOM и резкий выигрыш от предварительного отбора. Полный список сущностей не просто медленный: он может быть невозможен в памяти и одновременно хуже по ошибке редких слов.
| Настройка | N=500 clean/other | N=1000 clean/other | N=5000 clean/other |
|---|---|---|---|
| COALA без отбора | 20.38 / 35.01 | 21.98 / 37.54 | OOM / OOM |
| COALA + BTI DPD-Loss | 3.25 / 9.13 | 3.86 / 10.59 | 6.96 / 15.17 |
| Bias Qwen | 6.00 / 14.20 | - | - |
| RNN-T + IB | 11.23 / 26.30 | 12.44 / 27.93 | - |
Как это читать: ключ к контекстному распознаванию здесь не в том, чтобы дать модели больше подсказок, а в том, чтобы дать меньше, но правильных. Это особенно важно для устройств и сервисов с ограничением памяти.