https://huggingface.co/Helsinki-NLP/opus-mt-pl-uk
and English to Ukrainian
https://huggingface.co/Helsinki-NLP/opus-mt-en-uk
You can test the models with the form input on the right-hand side
And here's a site with docs and code examples for basic usage in your app
https://huggingface.co/transformers/model_doc/marian.html
You can also use Marian's training code on PyTorch with custom source and target texts.
Currently, volunteers manually translate from English to all other languages. It's possible to use AI to help, but quality of translation is too low. Dumb Translation Memory database is much more helpful than AI translator.
In the new system, one volunteer will translate messages from English to his native language, while all others will be able to use this translation as the additional constraint, to improve quality of translation to their native language. More input languages -> more constraints -> better quality of translation.
My best idea, so far, is to use a multilingual tokenizer (SpaCy looks good) and a linear transformer, because linear transformers are able to accept large inputs, with thousands of tokens. IMHO, I can input multiple translations of messages (they are short), and define loss as expected Ukrainian translation.
However, I'm completely new to this field. I completed just one AI project so far: recognition of animals at video. I have no idea how to start.
For example, I have no idea how to hint transformer that input messages are the same, just in 4 different languages. Should I interleave messages, like "Cannot Не можу open відкрити file файл : : ", or put them aside, via separator: "\0Cannot open file: \0Не можу відкрити файл: \0", or create few independent inputs? Or use a memory and improve quality of output message incrementally?
Any hints where to start?
My approach to AI is somewhat conservative because of working in a law-adjacent field where explainability is paramount. When it comes to getting "smart" I prefer forward-chaining logic over facts, and facts include predictions from models too. But at least there is a "judge"/engine to coordinate how the predictions from the ensemble of models maps to actions. I love me some pertained neural nets, but use them more as black box appliances.
There's also https://github.com/jruizgit/rules but haven't tried it yet.
I want to use AI to translate (localize) messages for free software, in my case, Ukrainian language. My plan to improve quality of automated translation is to translate from similar languages in parallel, i.e. give a same message in English, Russian, Polish, and expect message in Ukrainian as output.
Where I should start? Which libraries to use? How to connect them? How to train them?