开源|哈佛大学NLP组开源神经机器翻译工具包OpenNMT

选自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

开源|哈佛大学NLP组开源神经机器翻译工具包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

相关推荐