Should i use OpenNMT,Marian,Tensorflow Or Pytorch for Build NMT model?

Greeting Everyone,
i want to Create a NMT model for translating English - German. i am a newbie on this feild
so i don’t know where to start or which tool is best for me to Build the Model.
i saw there’s a lot of option for newbie to Train their data without using any tool for example AutoML Translation By Google and Custom Translator by Microsoft Azure so thats kinda confusing for me because i dont know which option should i choose. so now i am seeking help to everyone. how do i start? and if i want to develop a NMT model which option is best for me? and which tool is best for create NMT Model ? OpenNMT,Marian,Tensorflow or Pytorch?
Have a Good Day

Thank You

1 Like

Dear Anas,

I believe it is a good question. To answer it, it is important to understand your ultimate objectives.

This path allows companies to fine-tune big baseline NMT models with their data. These are fast solutions, and many companies go for them to avoid starting an AI/ML team.

OpenNMT-{py,tf}, Marian, and FairSeq are configuration-based NMT toolkits. Post-grad students usually select one of these tools as they allow them to understand Deep Learning arguments and to try famous papers quickly. As these toolkits become more robust, many companies find them enough for their needs.

For a post-grad student, at some point, it will be an inevitable path to learn TensorFlow (or maybe Keras) and/or PyTorch. This comes handy when you need a custom feature. In this case, you either develop something simple from scratch or contribute to one of the aforementioned toolkits. NMT providers and other software companies usually require these frameworks.

Note that the last two paths (and specially the 3rd one) require: 1) fundamental programming skills; 2) understanding traditional NLP concepts; and 3) understanding Deep Learning concepts. In my opinion, you do not need to learn everything in a hierarchical order; you can learn what you need as you go.

If you are comfortable with technical stuff like Linux and bash commands, you can definitely start with a toolkit like OpenNMT-py or OpenNMT-tf and then build on. In this case, you can check its QuickStart, and maybe look for its Google Colab version on the forum.

Kind regards,


Thanks Yasmin, For Your Broad Explain
so my ultimate objectives is simple. i want to learn Neural Machine Translation and implement my knowledge with the help one of these tool so that i can build a Model which will be translate English - German
since i have some knowledge on programming and i am also interest in Machine Learning (NLP Part) thats why i choose to use configuration-based NMT toolkits. and i also saw that you already implement OpenNMT on one of your project (
i want to create exactly same type of thing so yeah thanks again for open your project

Have a great day <3

1 Like