University of Amsterdam's Neural Machine Translation
For technical support, go to tardis42.slack.com
Tardis is mainly developed for NLP, therefore its interfaces have NLPish feel.
Tardis is written for GPU, so you need to use GPUs in order to run Tardis. Additionally you need the following packages
Go to NVIDIA homepage and download CUDNN version that corresponds to your CUDA (7.5 if you are using DAS5)
That's all!
Most of the code for processing data is in data/
- AbstractDataLoader provides general text processing utilities such as creating vocabulary, load and shuffle data, convert text to tensor and vice-visa,...
- loadBitext inherits from AbstractDataLoader. It provides general API for bitext processing
- loadText.lua inherits from AbstractDataLoader. It is useful for Language Model.
tardis/
contains all most everything for Seq2seq models.
- Transducer, consumes a sequence of input and produce a sequence of hidden states. Transducer can be used for language model and it is the basic block to build encoder/decoder in Seq2seq.
- FastTransducer, which is fast. It uses
cudnn
. It has the same set of APIs as Transducer. - SeqAtt.lua or NMT, which is a standard seq2seq architecture with attention.
First, you need a configuration file to describe your experimental setup.
see iwslt.de2en.conf
for an example of config file.
Once you have your config file expr.conf
you can run tardis
$ th main.lua expr.conf
- Seq2seq with attention
- Fast LSTM / enable
cudnn
- Hard Attention
- REINFORCE
- Conditional Attention GRU
- Ke Tran
- Arianna Bisazza