При обработке больших аудио сначала важно определить, на каком языке говорит человек, и только затем направить запись в подходящую систему распознавания речи. Это становится особенно важно при обработке больших объёмов аудио, где модель должна анализировать тысячи и миллионы записей. Нам удалось создать быструю модель определения языка (LID-классификатор), сохранив качество распознавания. Благодаря ей обработка аудиоданных (ASR) требует значительно меньше вычислительных ресурсов и может эффективнее масштабироваться на существующей инфраструктуре.
В качестве отправной точки мы использовали общедоступную модель, которая различает 126 языков и содержит около 1 млрд параметров. Нам нужна была не просто более компактная модель, а работающая быстрее и сохраняющая качество. Простого уменьшения модели или снижения точности представления её весов для решения этой задачи было недостаточно, и мы стали искать более эффективные подходы.
Разработку компактной модели выполнил исследователь компании «Криптонит» по направлению обработки аудиоданных Александр Самойлов, при участии Александра Тарарина и Артёма Рыженкова.
Они создали компактную модель для определения языка по короткому фрагменту речи, которая примерно в 10 раз быстрее и в 5 раз легче. Вдобавок, модель получилась устойчивой к искажениям.
Добиться таких результатов удалось с помощью метода дистилляции знаний — подхода в машинном обучении, при котором большая и уже хорошо обученная нейросеть становится учителем для более компактной модели.
Принцип похож на обучение ученика у опытного преподавателя. При обучении без учителя модель учится на примерах (размеченных наборах данных), в которых ей просто показывают правильные ответы: например, «это русский язык», «это английский», «это испанский» и так далее. При дистилляции она дополнительно получает ход рассуждений большой модели: какие языки она считает наиболее вероятными и насколько уверена в каждом варианте.
В роли учителя использовалась модель с архитектурой wav2vec2. Задача специалистов «Криптонита» заключалась в том, чтобы создать значительно более «легковесного» ученика, который сохранит качество исходной системы, но потребует гораздо меньше вычислительных ресурсов.
Для этого в «Криптоните» провели серию экспериментов с архитектурой модели, объёмом обучающих данных и способами передачи знаний. Затем тщательно проверили разные варианты дистилляции и способы обучения внутренних слоёв нейросети. Оценили устойчивость модели к шумам и смене кодеков, а также оптимизировали скорость её работы.
Как и её «учитель», новая модель определяет язык по акустическим и фонетическим особенностям речи, извлекаемым непосредственно из аудиосигнала. Результат идентификации указывается в виде кода ISO 639-3, что упрощает использование модели в конвейерах обработки данных по распознаванию речи. Это востребовано у операторов связи, технической поддержки и в транснациональных компаниях. Компактная модель содержит 219 млн параметров, то есть примерно в пять раз меньше исходной. Она работает примерно в 10 раз быстрее и при этом сохраняет близкое к эталонному качество определения языка: отклонение по основной метрике (macro average accuracy) составляет менее 1%.
Пятикратное уменьшение размера модели существенно упрощает её использование в сервисах, где важны скорость ответа и стоимость вычислений. Таким образом, дистилляция позволила сохранить возможности исходной системы, сделав её существенно эффективнее для практического применения.
Практический эффект особенно заметен при обработке больших потоков аудиоданных. Более компактная и быстрая модель требует меньше памяти и вычислительных ресурсов, поэтому позволяет эффективнее использовать уже имеющуюся инфраструктуру и обрабатывать больше данных без пропорционального увеличения числа серверов и ускорителей. Это делает масштабирование подобных сервисов проще и экономичнее.
