OpenNMT-py is the PyTorch implementation of OpenNMT, the long-running open-source ecosystem for neural machine translation and sequence-to-sequence learning. It has around 7,000 stars on GitHub and remains maintained in 2025 and beyond.
OpenNMT began at Harvard and Systran as a production-grade toolkit for training translation models, and the PyTorch edition carries that heritage: a complete, research-friendly training and inference framework for encoder-decoder and decoder-only architectures. It covers the full workflow — data preprocessing and tokenization, configurable model architectures, training with modern optimization and mixed precision, and efficient inference — and its scope has grown from machine translation to language modeling and general sequence generation, including support for large language models. The codebase favors transparency and hackability, which has made it a teaching and research staple as well as a practical MT engine. Practical touches such as checkpoint averaging, subword tokenization workflows, distributed and mixed-precision training, and extensive configuration examples help teams go from a parallel corpus to a working translation service without rewriting framework code. Trained models pair naturally with CTranslate2 for fast deployment. OpenNMT-py is free under the MIT license.
OpenNMT-py is completely free and open source under the MIT license. There are no paid tiers — you train and serve models on your own infrastructure.
OpenNMT-py is for MT engineers, NLP researchers and students who need a proven, flexible toolkit for training translation and sequence models, and for teams building custom language technology in-house.