Sequence to Sequence Framework in PyTorch


This project is not actively maintained so issues created are unlikely to be addressed in a timely way. If you are interested, there's a recent fork of this repository called pysimt which includes Transformer-based architectures as well.


nmtpytorch allows training of various end-to-end neural architectures including
but not limited to neural machine translation, image captioning and automatic
speech recognition systems. The initial codebase was in Theano and was
inspired from the famous dl4mt-tutorial

nmtpytorch received valuable contributions from the Grounded Sequence-to-sequence Transduction Team
of Frederick Jelinek Memorial Summer Workshop 2018:

Loic Barrault, Ozan Caglayan, Amanda Duarte, Desmond Elliott, Spandana Gella, Nils Holzenberger,
Chirag Lala, Jasmine (Sun Jae) Lee, Jindřich Libovický, Pranava Madhyastha,
Florian Metze, Karl Mulligan, Alissa Ostapenko, Shruti Palaskar, Ramon Sanabria, Lucia Specia and Josiah Wang.

If you use nmtpytorch, you may want to cite the following paper:

  author    = {Ozan Caglayan and
               Mercedes Garc\'{i}a-Mart\'{i}nez and
               Adrien Bardet and
               Walid Aransa and
               Fethi Bougares and
               Lo\"{i}c Barrault},
  title     = {NMTPY: A Flexible Toolkit for Advanced Neural Machine Translation Systems},
  journal   = {Prague Bull. Math. Linguistics},
  volume    = {109},
  pages     = {15--28},
  year      = {2017},
  url       = {https://ufal.mff.cuni.cz/pbml/109/art-caglayan-et-al.pdf},
  doi       = {10.1515/pralin-2017-0035},
  timestamp = {Tue, 12 Sep 2017 10:01:08 +0100}


You may want to install NVIDIA's Apex
extensions. As of February 2020, we only monkey-patched nn.LayerNorm
with Apex' one if the library is installed and found.


You can install nmtpytorch from PyPI using pip (or pip3 depending on your
operating system and environment):

$ pip install nmtpytorch


We provide an environment.yml file in the repository that you can use to create
a ready-to-use anaconda environment for nmtpytorch:

$ conda update --all
$ git clone https://github.com/lium-lst/nmtpytorch.git
$ conda env create -f nmtpytorch/environment.yml

IMPORTANT: After installing nmtpytorch, you need to run nmtpy-install-extra
to download METEOR related files into your ${HOME}/.nmtpy folder.
This step is only required once.

Development Mode

For continuous development and testing, it is sufficient to run python setup.py develop
in the root folder of your GIT checkout. From now on, all modifications to the source
tree are directly taken into account without requiring reinstallation.