luoyexuge 2016-12-20
选自OpenNMT
机器之心编译
参与:吴攀
神经机器翻译是近段时间以来推动机器翻译发展的主要推动力。今天,哈佛大学自然语言处理研究组(Harvard NLP)宣布开源了其研发的神经机器翻译系统 OpenNMT,该系统使用了 Torch 数学工具包。该研究组在官网上表示该系统已经达到生产可用的水平(industrial-strength)。
官网:http://opennmt.net
代码:https://github.com/opennmt/opennmt
演示:https://demo-pnmt.systran.net
Docker 容器:https://hub.docker.com/r/harvardnlp/opennmt
OpenNMT 可以像主要的翻译服务提供商的已投入生产的系统那样使用。该系统简单易用,易于扩展,同时也能维持效率和当前最佳的翻译准确度。
其特性包括:
简单的通用型接口,仅需要源文件和目标文件;
为高性能 GPU 训练进行了速度和内存优化;
可以提升翻译性能的最新研究的特性;
有多个语言对的预训练好的模型(即将到来);
允许其它序列生成任务的扩展,比如归纳总结和图像到文本生成。
安装
OpenNMT 仅需要一次 vanilla torch/cutorch 安装。它要使用 nn、nngraph 和 cunn。有(CUDA)Docker 容器可选。
快速启动
OpenNMT 包含三条指令:
1)预处理数据
th preprocess.lua -train_src data/src-train.txt -train_tgt data/tgt-train.txt -valid_src data/src-val.txt -valid_tgt data/tgt-val.txt -save_data data/demo
2)训练模型
th train.lua -data data/demo-train.t7 -save_model model
3)翻译句子
th translate.lua -model model_final.t7 -src data/src-test.txt -output pred.txt
查看指南了解更多:http://opennmt.github.io/Guide
研究
其中主要的模型基于论文 Neural Machine Translation by Jointly Learning to Align and Translate Bahdanau et al. ICLR 2015 和 Effective Approaches to Attention-based Neural Machine Translation, Luong et al. EMNLP 2015。
在基本模型上,还有大量可选项,这都要感谢 SYSTRAN(http://www.systransoft.com/)的出色工作。特别地,下面是一些实现的功能:
Effective Approaches to Attention-based Neural Machine Translation . Luong et al., EMNLP 2015.
Character-based Neural Machine Translation. Costa-Jussa and Fonollosa, ACL 2016.
Compression of Neural Machine Translation Models via Pruning . See et al., COLING 2016.
Sequence-Level Knowledge Distillation . Kim and Rush., EMNLP 2016.
Deep Recurrent Models with Fast Forward Connections for Neural Machine Translation . Zhou et al, TACL 2016.
Guided Alignment Training for Topic-Aware Neural Machine Translation . Chen et al., arXiv:1607.01628.
Linguistic Input Features Improve Neural Machine Translation . Senrich et al., arXiv:1606.02892
声明
OpenNMT 的实现使用了以下项目的代码:
Andrej Karpathy 的 char-rnn:https://github.com/karpathy/char-rnn
Wojciech Zaremba 的 LSTM:https://github.com/wojzaremba/lstm
Element RNN 库:https://github.com/Element-Research/rnn
证书
MIT