资源 | 斯坦福大学NLP组开放神经机器翻译代码库(附论文)
选自斯坦福
机器之心编译
参与:吴攀、杜夏德
近日,斯坦福大学自然语言处理组(Stanford NLP)发布了一篇文章,总结了该研究组在神经机器翻译(NMT)上的研究信息。在这篇文章中,他们还放出了在多种翻译任务上(比如英德翻译和英语-捷克语翻译)实现了当前最佳结果的代码库(codebase)。除此之外,「为了鼓励再现和增加透明」,他们还放出了他们用于训练模型的处理过的数据以及可以通过他们的代码库使用的预训练好的模型。
发布地址:http://nlp.stanford.edu/projects/nmt/
参与成员:
-
Christopher D. Manning(斯坦福大学计算机科学和语言学教授)
-
Minh-Thang Luong(斯坦福博士,Google Brain 研究科学家)
-
Abigail See(斯坦福大学计算机科学在读博士)
-
Hieu Pham
代码库
-
对于混合 NMT(hybrid NMT),请使用这个代码库并且引用:
代码库:https://github.com/lmthang/nmt.hybrid
论文:使用混合词-字符模型实现开放词汇神经机器翻译(Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models)
摘要:几乎之前所有的神经机器翻译(NMT)使用的词汇都受限,随后可能用一个方法来修补未知的单词。本论文展示了一个全新的能实现开放词汇神经机器翻译(open vocabulary NMT)的词-字符解决方法。我们建立了一个混合的系统,能够实现大部分的词级(word level)翻译,并可查阅罕见词的字母组成。我们字符级的循环神经网络能计算源词的表征,并能在需要时恢复未知的目标词。这种混合的方法还有一个双重优点是,与基于字符的网络相比,它更快且更容易训练;同时,它不像基于词的模型那样会产生未知的词。在 WMT' 15 英语-捷克语的翻译任务上,这种混合方法还实现了一个额外的+ 2.1 BLEU 分的提升――超过已经能处理未知单词的模型 11.4 BLEU 分。我们的最佳系统在这个任务上达到了新的最佳表现:20.7 BLEU 分。我们证明了我们的字符模型不仅能成功地学习生成形式很好的捷克语词(这是一种词汇复杂高度屈折的语言),还能为英语源词建立了正确的表征。
-
对于通用的基于注意的 NMT(general attention-based NMT),请引用以下论文:
代码库:https://github.com/lmthang/nmt.hybrid
论文:实现基于注意的神经机器翻译的有效方法(Effective Approaches to Attention-based Neural Machine Translation)
摘要:最近一种在翻译过程中通过选择性地集中关注部分源句子的注意机制被用于提升神经机器翻译(NMT)结果。然而,探索用于基于注意的神经机器翻译(NMT)的有用架构的研究还不多。本论文探讨了两种简单有效的注意机制类别:一种能顾及到所有源词的全局方法,以及一种只能一次查看源词的一个子集的局部方法。我们证明了在英语-德语/德语-英语 WMT 翻译任务上,这两种方法都是有效的。使用局部注意方法,相比于已经结合了 dropout 等技术的非注意系统,我们的系统增长了 5.0 BLEU 点。我们的组合模型使用了不同的注意架构,在 WNT'15 英语-德语的翻译任务中,实现了目前最好的结果:25.9 BLEU 点;比现有的基于 NMT 和 一个 n-gram reranker 的最佳系统提升了 1.0 BLEU 点。
-
对于剪枝 NMT(pruning NMT),请引用以下论文(如果你对代码有兴趣,请联系我们):
论文:通过剪枝的神经机器翻译的压缩(Compression of Neural Machine Translation Models via Pruning)
摘要:和其它许多深度学习领域一样,神经机器翻译(NMT)常会遭遇过度参数化(over-parameterization)的问题,这会导致需要大量的存储空间。这篇论文检查了三种简单的基于幅度的(magnitude-based)用来压缩 NMT 模型的剪枝方案,即 class-blind、class-uniform 和 class-distribution;它们的不同之处在于剪枝的阈值为 NMT 架构中不同的权重类所计算的方式。我们表明权重剪枝(weight pruning)可作为一种用于当前最佳 NMT 压缩技术。我们表明一个带有超过 2 亿个参数的 NMT 模型可以在仅有非常少量的性能损失的情况下被剪去 40%――这个结果是在 WMT'14 英语-德语翻译任务上得到的。这揭示了 NMT 架构中的冗余的分布。我们的主要结果是:通过再训练(retraining),我们可以使用 80% 剪枝的模型来恢复甚至超越原有的表现。
预处理的数据
-
WMT'15 英语-捷克语数据(大)
训练集(包含 1580 万个句子对)
英语训练集(train.en):http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/train.en
捷克语训练集(train.cs):http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/train.cs
测试集:
newstest2013.en:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/newstest2013.en
newstest2013.cs:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/newstest2013.cs
newstest2014.en:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/newstest2014.en
newstest2014.cs:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/newstest2014.cs
newstest2015.en:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/newstest2015.en
newstest2015.cs:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/newstest2015.cs
词汇库(最常见的词):
vocab.1K.en:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.1K.en
vocab.1K.cs:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.1K.cs
vocab.10K.en:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.10K.en
vocab.10K.cs:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.10K.cs
vocab.20K.en:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.20K.en
vocab.20K.cs:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.20K.cs
vocab.50K.en:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.50K.en
vocab.50K.cs:http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.50K.cs
词典(从对齐的数据中提取出来的,dict.en-cs):http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/dict.en-cs
字符库:
vocab.char.200.en (http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.char.200.en)
vocab.char.200.cs (http://nlp.stanford.edu/projects/nmt/data/wmt15.en-cs/vocab.char.200.cs)
注:我们的论文《Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models》中使用了这个数据集。
-
WMT'14 英语-德语数据(中)
训练集(包含 450 万个句子对)
英语训练集(train.en):http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/train.en
德语训练集:(train.de):http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/train.de
测试集:
newstest2012.en:http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2012.en
newstest2012.de:http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2012.de
newstest2013.en:http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2013.en
newstest2013.de:http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2013.de
newstest2014.en:http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2014.en
newstest2014.de:http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2014.de
newstest2015.en:http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2015.en
newstest2015.de:http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/newstest2015.de
词汇库(最常见的 5 万个词):
vocab.50K.en (http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/vocab.50K.en)
vocab.50K.de (http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/vocab.50K.de)
词典(从对齐的数据中提取出来的,dict.en-de):http://nlp.stanford.edu/projects/nmt/data/wmt14.en-de/dict.en-de
注:我们的论文《Effective Approaches to Attention-based Neural Machine Translation》中使用了这个数据集。另外,因为历史上的原因,我们对合成词(compound words)做了拆分。比如,rich-text format --> rich ##AT##-##AT## text format.
-
IWSLT'15 英语-越南语数据(小)
训练集(包含 13.3 万个句子对)
英语训练集(train.en):http://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/train.en
越南语训练集(train.vi):http://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/train.vi
测试集:
tst2012.en:http://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/tst2012.en
tst2012.vi:http://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/tst2012.vi
tst2013.en:http://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/tst2013.en
tst2013.vi:http://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/tst2013.vi
词汇库(最常见的 5 万个词):
vocab.en:http://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/vocab.en
vocab.vi:http://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/vocab.vi
词典(从对齐的数据中提取出来的,dict.en-vi):http://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/dict.en-vi
注:我们的论文《Stanford Neural Machine Translation Systems for Spoken Language Domains》中使用了这个数据集
预训练的模型
我们放出了预训练好的模型,可以直接通过我们的 Matlab 代码使用。
注:要使用这些模型,必须要一个 GPU。如果想要这些模型在 CPU 上可用,请考虑使用这个脚本:https://github.com/stanfordnlp/nmt/blob/master/code/misc/model2cpu.m
-
WMT'15 英语-捷克语混合模型(hybrid models)
我们训练了 4 个具有同样架构的模型(全局注意、双线性形式、dropout、两层字符级模型):
1. Model 1:http://nlp.stanford.edu/projects/nmt/models/wmt15.en-cs/model1.mat
2. Model 2 :http://nlp.stanford.edu/projects/nmt/models/wmt15.en-cs/model2.mat
3. Model 3:http://nlp.stanford.edu/projects/nmt/models/wmt15.en-cs/model3.mat
4. Model 4:http://nlp.stanford.edu/projects/nmt/models/wmt15.en-cs/model4.mat
-
WMT'14 英语到德语基于注意的模型(attention-based models)
1. 全局注意、点积:http://nlp.stanford.edu/projects/nmt/models/wmt14.en-de/globalAttn-dotProduct.mat
2. 全局注意、点积、dropout:http://nlp.stanford.edu/projects/nmt/models/wmt14.en-de/globalAttn-dotProduct-dropout.mat
3. 全局注意、双线性形式、dropout:http://nlp.stanford.edu/projects/nmt/models/wmt14.en-de/globalAttn-bilinear-dropout.mat
4. 局部注意(单调)、双线性形式:http://nlp.stanford.edu/projects/nmt/models/wmt14.en-de/localAttnMono-bilinear.mat
5. 局部注意(单调)、双线性形式、dropout:http://nlp.stanford.edu/projects/nmt/models/wmt14.en-de/localAttnMono-bilinear-dropout.mat
6. 局部注意(预测)、点积、dropout:http://nlp.stanford.edu/projects/nmt/models/wmt14.en-de/localAttnPred-dotProduct-dropout.mat
7. 局部注意(预测)、双线性形式:http://nlp.stanford.edu/projects/nmt/models/wmt14.en-de/localAttnPred-bilinear.mat
8. 局部注意(预测)、双线性形式、dropout:http://nlp.stanford.edu/projects/nmt/models/wmt14.en-de/localAttnPred-bilinear-dropout.mat
-
IWSLT'15 英语-越南语基于注意的模型(attention-based models)
1. 全局注意、双线性形式、dropout:http://nlp.stanford.edu/projects/nmt/models/iwslt15.en-vi/globalAttn-bilinear-dropout.mat
2. 全局注意、concatenate :http://nlp.stanford.edu/projects/nmt/models/iwslt15.en-vi/globalAttn-concat.mat
3. 局部注意(预测)、点积、dropout:http://nlp.stanford.edu/projects/nmt/models/iwslt15.en-vi/localAttnMono-dotProduct-dropout.mat
4. 局部注意(单调)、双线性形式、dropout:http://nlp.stanford.edu/projects/nmt/models/iwslt15.en-vi/localAttnMono-bilinear-dropout.mat
5. 局部注意(单调)、双线性形式:http://nlp.stanford.edu/projects/nmt/models/iwslt15.en-vi/localAttnMono-bilinear.mat
6. 局部注意(单调)、concatenate、dropout :http://nlp.stanford.edu/projects/nmt/models/iwslt15.en-vi/localAttnMono-concat-dropout.mat
7. 局部注意(预测)、点积、dropout:http://nlp.stanford.edu/projects/nmt/models/iwslt15.en-vi/localAttnPred-dotProduct-dropout.mat
8. 局部注意(预测)、双线性形式:http://nlp.stanford.edu/projects/nmt/models/iwslt15.en-vi/localAttnPred-bilinear.mat
9. 局部注意(预测)、concatenate、dropout:http://nlp.stanford.edu/projects/nmt/models/iwslt15.en-vi/localAttnPred-concat-dropout.mat
联系信息
有任何评论或疑问,可联系第一作者:lmthang@stanford.edu
©本文为机器之心编译文章, 转载请联系本公众号获得授权 。
?------------------------------------------------
加入机器之心(全职记者/实习生):hr@almosthuman.cn
投稿或寻求报道:editor@almosthuman.cn
广告&商务合作:bd@almosthuman.cn