ASR. На данных заказчика обкатали несколько SOTA ASR моделек, лучше всего себя показал Whisper Large V2.
Из того, что понравилось — работает на слегка шумноватом домене телефонных переговоров, отлично подхватывает даже доменноспецифическую лексику и сокращения, неплохо расставляет пунктуацию, точки, кейс.
Однако всё же есть примеры неидеальной работы на тех же фамилиях и именах сотрудников компании, внутренних названиях и наименованиях, все же некоторых специфических терминах.
Текущие условия:
⁃ Имена и фамилии сотрудников можно запросить
⁃ Можно также запросить некоторый набор терминов и внутренних топонимов/названий, которыми они оперируют в диалогах
⁃ Самими же диалогами компания делится неохотно из-за всяких заморочек на прайваси. В лучшем случае ожидаю, что дадут не более 100 часов, а то и поменьше
⁃ У нас убермало компьюта, в распоряжении буквально пара 2080 ti и одна 3090 ti
Чего бы хотелось в идеале:
⁃ Сохранить текущий перформанс Whisper Large V2, но улучшить его работу на вышеуказанных словах
⁃ В ближайшем будущем переехать на более легковесное решение, которое бы работало быстро (<1 xRT) и хорошо скейлилось на серверных CPU типа XEON
Сейчас смотрим в сторону прикрутки чего-то к декодированию:
⁃ LM-fusion подходы
⁃ Seq2Seq исправление в духе spell-correction поверх K-гипотез от Whisper
⁃ Файнтюнинг Whisper от Medium до того самого Large V2 (если заказчик насыпет данных всё-таки)
⁃ Потенциально (но пока не хотелось бы) переход на другие архитектуры
От перехода отталкивает то, что предобучать что-то самим у нас буквально нет компьюта, а большинство доступных предобученных ASR не кейс-сенсетив, не умеют в пунктуацию и нормализацию. На сколько нам нужна пунктуация мы пока выясняем, но вау-эффект от хорошо оформленных транскрипций у бизнеса уже был и назад этот фарш не провернуть…
Возможно, это не такая уж проблема, и на самом деле можно было бы делать пайплайн с нормализацией отдельно, но пока мы не можем оценить насколько это направление сложнее. Короче бизнес сложно будет убедить идти туда, когда Whisper Large V2 работает «почти идеально».
Собственно, вопросы:
1. Пробовали ли вы как-то комбинировать E2E-ASR (в идеале с Whisper) с отдельной LM, можете поделиться статьями, кодом, идеями, инсайтами, мб какими-то личными наработками?
2. Как бы вы решали задачу улучшения существующей ASR-системы, когда параллельных данных очень мало и/или нет совсем (но есть голден-сеты и отдельно тексты)?
3. Что бы вы в целом посоветовали при обучении/файнтюниге Whisper под свой домен, какой был опыт и результаты у вас?
4. Какие другие архитектуры вы могли бы порекомендовать в условиях данной задачи?
У команды толком нет опыта с ASR, мы просто ML-инженеры/оркестры, поэтому сейчас только погружаемся в задачу. Также мы пока только пытаемся заформализовать требования/оценки и направления работы, поэтому какие-то ограничения возможно удастся снять в диалоге с бизнесом, если они будут блокировать реализацию проекта.
В общем, если более опытные ребята натолкнут на полезные мысли, буду очень признателен. Заранее спасибо!
Спасибо за ответ! Идея дообучать модель поменьше для тестов нравится. Если будем файнтюнить, пойдем по такому пути скорее всего. Насчёт того, что в Whisper уже есть LM, я понимаю, просто хотелось уточнить имеет ли при этом смысл накрутить другую LM и/или иной алгоритм для рескоринга гипотез. Просто кажется, если впрягаться в декодирование, то можно что-то выжать даже имея тупо список терминов. А вот для файнтюнинга он будет бесполезен.
2. Whisper это state-of-the-art (ну или рядом) система. Чтобы её доучить, надо будет много данных и много компьюта. файнтьюниться спокойно и на малых данных. и не надо даже много компьютеров. поэтому я бы предложил сперва собрать датасет на данных клиента и на них дообучить поменьше модели
Если сговоримся с заказчиком, конечно будем пробовать. А можно какие-то цифры для оценки, если не секрет? На скольких часах файнтюнились, что получилось добиться по метрикам?
вообще чем больше данных, тем качество будет лучше. я с 250 часами small и медиум обучил. для самой маленькой результат был плохой, подозреваю что из за малого количества данных. но язык у меня башкирский, язык проще для asr. wer где то 14%
Круто, спасибо! А башкирский был в претрейне у него? Полагаю что нет, но если да, интересно ещё какой был WER до файнтюна?
его не было совсем. но там есть родственные языки типа турецкий, казахский
понял, спасибо большое ещё раз за ответы! полезно
у немо тоже есть модель с пунктуацией и капитализацией https://huggingface.co/nvidia/stt_ru_fastconformer_hybrid_large_pc
Кайф, как-то пропустил её, спасибо!
Обсуждают сегодня