(2/2, начало)
Одна из причин, почему мы стали делать перевод на базе LLM — чтобы можно было использовать few-shot примеры для тех языков, которые модель выучила не очень хорошо, или для каких-то сложных предметных областей. Поиск примеров в параллельном корпусе сделали частично по всеязычным эмбеддингам OmniSONAR (про них в следующем посте), частично по словам (ибо для многих языков эмбеддинги не идеальны). Для поиска по словам пришлось «переизбрести» ранжирование TF-IDF, добавив в него попытку сделать так, чтобы найденные тексты в совокупности покрывали все слова текста-запроса. Плюс для переранжирования примеров использовали смесь разных сигналов качества (ибо хорошие примеры лучше плохих, но плохие лучше, чем никакие). Выяснилось, что добытые подобным образом примеры дают большой буст к качеству перевода с трудного языка на легкий, и умеренный – с лёгкого на трудный. Но всё сильно зависит от того, сколько примеров в базе для поиска, насколько они релевантны тестовому датасету, и насколько пересекаются с тем, что модель уже видела в ходе обучения.
В целом, рискну заявить, что в первом приближении задачу «машинного перевода для всех языков» модели OMT-LLaMA решили: они худо-бедно могут понимать и генерировать больше тыщи языков (согласно вышеупомянутому библейскому бенчмарку), а для плохо подержанных языков всегда можно нарастить качество с помощью RAG, небольшого дообучения на специализированном датасете, или их комбинации (она обычно работают лучше, чем что-то одно), если для них появились данные. Если бы нам дали заопенсорсить OMT-LLaMA, то я бы их сейчас абсолютно всем рекомендовал в качестве базовой модели для машинного перевода. Но увы, на данный момент это не очень светит. Хорошая новость, впрочем, что при наличии вычислительных ресурсов воспроизвести их будет не очень сложно.
В следующих постах расскажу про OmniSONAR, OMT-NLLB, и как мы всё это оценивали.
Post #340
2.03K
- 🔥 32
- ❤ 9
- 👏 3