Ми дотренували розпізнавач на власних записах
Розпізнавач у застосунку — 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 вересня застосунок питає, перш ніж ставити нову версію. Докладніше — про мови та моделі.