3.4Kпросмотров
24 июня 2025 г.
Score: 3.7K
Хочу рассказать про статью Improving Language and Modality Transfer in Translation by Character-level Modeling от нашего стажёра Ioannis Tsiamas с моим участием. Дано: энкодер предложений (SONAR), который понимает текст на 200 языках (и при помощи декодера может переводить с любого из них на любой). Задача: научить его понимать ещё больше языков, а заодно устную речь. Решение: CharSONAR. Рецепт следующий: 1. Сокращаем словарь энкодера, убрав из него все subword tokens длиннее одного символа, и оставляем только буквы. Дообучаем эту модель на любых текстах на «старых» языках, используя на входе любые тексты, а на выходе требуя воспроизводить эмбеддинги, полученные изначальной моделью (типичный teacher-student training). Цель – убрать знания модели о смыслах слов из матрицы эмбеддингов токенов и перенести их в параметры трансформерных слоёв. При желании ещё можно добавлять на вход небольшие помехи на уровне символов, имитируя ошибки орфографии или ASR. 2) Если мы хотим добавлять новые языки, дальше можно обучать эту модель на параллельном корпусе, подавая в модель-ученика предложения нового языка, а в модель-учителя – их переводы на один из старых языков, и точно так же требуя у ученика имитировать учителя. В качестве «новых» языков мы взяли 12 языков, которых не было в NLLB-200 и SONAR, но которые за последние два года были добавлены в тестовый датасет FLORES+. Включая чувашский, каракалпакский, марийский, эрзянский и тувинский 🙃 Со всех из них модель в итоге переводит весьма прилично! И почти каждый из них модель с символьным токенайзером понимает чуть лучше, чем эквивалентная модель с subword tokenizer: видимо, на уровне символов проще проводить аналоги с родственными языками, где похожие слова пишутся и произносятся иначе. 3) Чтобы заставить модель понимать речь, мы прикрутили к ней энкодер аудио от MMS (модели для распознавания речи на 1100 языках). MMS часто делает ошибки в транскрибировании (ибо в ней даже нет декодера, чисто CTC), но если вместо дискретной транскрипции подавать в CharSONAR просто скрытое состояние из энкодера MMS (спресованное в длину согласно CTC меткам и пропущенное через небольшой обученный адаптер, который достаточно обучить на паре тысяч транскрибированных предложений), то дальше символьный энкодер хорошо понимает, что именно сейчас прозвучало, и переводит речь с языков разного уровня ресурсности лучше, чем Whisper, SeamlessM4T, или каскады из разных ASR и оригинальной модели SONAR. Почему так? Во-первых, за счёт энкодера, обученного на параллельных текстах, эта модель лучше понимает смыслы, чем end2end модели, где энкодер речи сразу отвечает за понимание. Во-вторых, за счёт плавного перехода от энкодера речи в энкодер текста на уровне «сглаженных» символов, модель менее чувствительна к неточностям распознавния речи, чем каскады. Опубликовать модель, к сожалению, пока не получилось по причинам бюрократического характера. Но рано или поздно мы опубликуем более новый энкодер, где будет поддержано уже не 12 новых языков, а на пару порядков больше 😏
3.4K
просмотров
3034
символов
Да
эмодзи
Нет
медиа

Другие посты @izolenta_mebiusa

Все посты канала →
Хочу рассказать про статью Improving Language and Modality T — @izolenta_mebiusa | PostSniper