Разработчики машинного перевода часто говорят об использовании предварительно обученных моделей. Я хотел сам обучить такую модель, но пришлось приложить усилия, чтобы найти наглядный пример. Поэтому после того, как код заработал, решил поделиться скриптами.
В качестве предварительно обученной модели я взял м2м100.
Завершенная языковая пара из языка хауса по-английски. Для этого я использовал корпус мафанд.
Весь код связан с работой с моделями и наборами данных через обнимая лицо.
Скрипты, на основе которых я составил свой, подсмотрел у ребят из ТартуПНЛ.
Окончательный код доступен по адресу гитхаб. В И ДРУГИЕ вы можете увидеть, как начать дополнительное обучение, а затем перевод.
Итак, что происходит. Предварительно обученная модель предложения хауса
Wannan dai shi ne karo na 3 da birnin Landan ke karɓar baƙuncin gasar wasanni ta ƙasa da ƙasa da dama.
переводится на английский так:
This is the day of the day of the day of the day of the day of the day of the day of the day of the day.
Вы можете проверить это, запустив код translate_m2m.py с моделью base_model
.
После дополнительного обучения использование кода m2m_multiling_tune_epochs.pyперевод стал, конечно не идеальным, но гораздо приятнее:
This is the third place for Landan to take a large number of passport disputes across the country.
Чтобы воспроизвести этот перевод, вы должны запустить тот же translate_m2m.pyно с моделью local_model
.
Следует отметить, что такие истории очень ресурсоемки, и не все видеокарты будут запускать этот код. воспользовался Яндекс облако, работал на Nvidia A100. Все эксперименты стоят около 1000 рублей.
Я постарался быть краток и прямо к делу. СПАСИБО!