Словари терминов и подсказка, которую мы спрятали
Когда вы говорите «pull request» в русской фразе, распознаватель пишет «пул реквест». Anthropic превращается в «Антропик», GitHub Actions — в «Гитхаб экшн». Мы потратили время на то, чтобы это исправить, и результат вышел не тот, которого мы ждали.
Три способа исправить термины
Распознаватель работает со звуком, поэтому первая мысль была — подсказать ему, какие термины слушать. Рядом с основной работает вторая маленькая модель на 98 МБ: она ищет термины в звуке и переписывает текст там, где слышит один из них. Это мы называем подсказкой. Второй способ — обычный список замен, применяемый к готовому тексту, без модели. Третий — судья: небольшая языковая модель читает предложение и решает, правда ли термин здесь уместен.
Мы проверили все три способа на четырёх голосах и 1434 фразах, примерно 57 вариантов настроек. Для каждого способа считали, сколько фраз он починил и сколько сломал.
- Подсказка: починила 86, сломала 253. И ещё 2,26 секунды на фразу против 0,33 без неё.
- Один список замен: починил 69, сломал 16, мгновенно.
- Судья: починил 79, сломал 10. По времени почти бесплатно: модель просыпается, только когда в тексте правда встретился кандидат.
Подсказка сломала втрое больше, чем починила. Типичная её ошибка — созвучное слово: «посмотрел» превращается в «Postgres». Мы пробовали убрать из списка рискованные слова и получили то же соотношение три к одному. Поэтому подсказку мы выключили, а её переключатель убрали из настроек. Код остался, рядом комментарий, почему она отключена.
Что теперь делает судья
Раньше судья спрашивал модель только про варианты, которые мы отметили как рискованные. Мы проверили, что будет, если спрашивать про каждого кандидата. Итоговый выигрыш тот же, но ломается 6 фраз вместо 10, и пропадает список, который мы писали руками и который мог устареть. Теперь судья спрашивает про всех кандидатов. Размер модели важен: модель на 1,7 миллиарда параметров сломала 24 фразы против 10 у модели на 4 миллиарда при том же сдвиге ошибок в словах. Если смотреть только на ошибку по словам, этого не увидеть.
Списки терминов для всех
Встроенные списки для программистов, дизайнеров и менеджеров открыты каждому: их можно выбирать, править и создавать свои. Публичный список из 165 терминов для разработчиков с лицензией MIT мы нашли, а для дизайнеров и менеджеров не нашли ничего, поэтому эти списки писали сами. Готовых данных о том, как русскоязычный человек произносит английские термины, мы тоже не нашли, так что эта половина работы тоже наша.
Каким цифрам не стоит верить
Терминов в нашем тестовом наборе мало: 259 замен задевают всего от 16 до 28 фраз из 380. Секунды — это время разбора файла, а не задержка, которую вы почувствуете в живой диктовке. Один голос оказался выбросом: 28% ошибок в словах против 7,5–12% у остальных. Задержку живой диктовки, когда судья спрашивает про всё, мы ещё не измерили. Читайте цифры как направление, а не как обещание.