Мы дообучили распознаватель на своих записях
Распознаватель в приложении — Parakeet от NVIDIA. Он хорош и без доработок, но ошибается именно на том, что мы диктуем: названия продуктов, английские слова посреди русской речи, числа. Поэтому мы доучили его на записях, которые сделали сами. Вот что получилось.
Что мы сделали
Дообучение — это когда берут готовую модель и продолжают её учить на новом материале. Мы делали это на Маке, без арендованных видеокарт. В модели около 627 миллионов параметров, один проход по примерно 80 минутам звука занимает около 12 минут.
Записи наши: несколько человек читали вслух сотни фраз, в том числе фразы-ловушки. Например, «сафари-парк», который модель любит писать как «Safari Park», и предложения, набитые числами.
Какая рецептура победила
Мы сравнили варианты на двух людях, которых модель не слышала, по 100 новых фраз у каждого. Ошибок на сто слов, меньше — лучше:
| Вариант | Ошибок |
|---|---|
| Parakeet в том виде, как его выпускает NVIDIA | 40,1 |
| Наша прошлая версия | 22,4 |
| Смесь с исходной моделью 0,4 | 25,0 |
| Смесь с исходной моделью 0,6 | 22,8 |
| Без смеси | 19,5 |
| Искажённый звук, смесь 0,6 | 21,7 |
| Искажённый звук, без смеси | 18,2 |
Победил последний вариант: на 4,2 пункта лучше прошлой версии.
Две идеи стоит объяснить. «Искажённый звук» значит, что при обучении мы добавляем к записям эхо комнаты и другую порчу, чтобы модель привыкла к настоящим помещениям. «Смесь» значит, что дообученную модель усредняют с исходной, чтобы она не забыла прежнее. Какое-то время мы брали смесь 0,6, и она оказалась вредной. Её подобрали на одном голосе и на первом наборе фраз, где мало трудных случаев. Когда мы добавили второй набор, где ловушек и чисел вдвое больше, смесь только отнимала выигрыш.
Что не помогло
Больше данных того же вида. Три версии, обученные на всё большем объёме, показали одинаковый результат в пределах шума. Новые фразы от тех же людей тоже не помогли, как и сильные искажения: они оказались хуже умеренных. Помогают новые голоса и верная рецептура.
Как мы меряем
Только на голосах, которых модель не слышала, и на фразах, которых она не видела. Если голос был в обучении, число выглядит примерно на треть лучше, чем будет у настоящего человека. Поэтому мы обучаем отдельную модель без каждого из проверочных голосов и меряем на ней.
Дообученная модель лежит на cdn.verbaide.com, и приложение берёт её оттуда. Сегодня: с 24 сентября приложение спрашивает, прежде чем ставить новую версию. Подробнее — про языки и модели.