选自arXiv
作者:Felix Hieber等
机器之心编译
参与:黄小天、李亚洲、刘晓坤
今年 7 月份,作为 MXNet 的支持者,亚马逊开源了自己的 NMT 框架 Sockeye。近日,亚马逊在 arXiv 放出了介绍 Sockeye 的论文,让我们能更细致的了解该开源工具的技术细节。机器之心对此论文做了摘要介绍,更多详细内容请查看原论文。
过去两年深度学习革命为机器翻译带来了快速而巨大的变化。相较于基于短语的传统系统,基于神经网络的新模型可以持续地为用户提供更高质量的翻译。神经机器翻译(NMT)同时为研究者打开了一幅激动人心的新局面,其中训练通道已简化,统一的模型也可直接从数据中得到训练。这种打破统计机器翻译(SMT)限制的希望使社区大受鼓舞,使得近期工作几乎全部聚焦在 NMT 上,并且看起来似乎每几个月就会有新突破。
在取得上述成果的同时,NMT 也面临着一系列新挑战。尽管流行的编码器-解码器模型之简单令人心动,近期文献及共享评估任务的结果表明,为了同时在翻译质量与计算效率上取得「生产就绪」的性能,还需要做大量的工程学工作。在 SMT 的流行趋势中,即使最强大的 NMT 系统也受益于微妙的架构调整、超参数调节和实证上有效的启发式技术。与 SMT 不同,NMT 没有「事实上」的工具包来吸引绝大部分的社区注意力,因此未能涵盖来自最近文献的所有最佳想法。相反,很多独立工具包的存在使该领域更加多元化,同时也使得由不同工具包实现的架构和算法提升变的难以对比。
为了解决这些挑战,我们引入了 SOCKEYE,一个由 Python 编写,通过 Apache MXNET4[Chen et al., 2015] 构建的神经序列到序列工具包。据我们所知,SOCKEYE 是唯一一个包含所有三大主流神经翻译架构实现的工具包:注意力循环神经网络 [Schwenk, 2012, Kalchbrenner and Blunsom, 2013, Sutskever et al., 2014, Bahdanau et al., 2014, Luong et al., 2015]、自注意力变换器 [Vaswani et al., 2017]、全卷积网络 [Gehring et al., 2017]。这些实现由分布广泛、持续更新且反映最近文献中的最佳想法的功能所支持。用户可根据最新研究轻松训练模型,对比不同架构,并通过添加代码扩展它们。SOCKEYE 仍在积极开发之中,研究和生产软件都遵循最佳实践,包括清晰的编码和文档指南、全面的自动测试以及代码贡献的同行评审。
图 1:不同编码器架构的计算相关性的原理图可视化。
表 1:Sockeye 中的 RNN 注意力类型。
表 2:无/有词汇选择机制(K=100)的 RNN 模型的 EN→DE 解码速率和 BLEU 分数。其中较小的模型使用 1 个编码器层和 1 个解码器层,而较大的模型使用 4 个编码器层和 8 个解码器层。
表 3:训练集(表格上部)、开发集(表格中部)和测试集的数据构成。所有的统计数据都是在标记化(tokenization)和长度过滤(length filtering)之后计算的。长度过滤通过行计数删除了大约 0.5% 的数据,通过词计数删除了 1.3% 的数据。
表 4:Groundhog RNN 模型在 newstest2017 数据集上的 BLEU 分数。
表 5:EN→DE Groundhog 模型的训练速率(每秒的更新次数)和吞吐量(如工具包中所报告的,转换为每秒的源语句平均数量)。
表 6:最佳设置的 RNN 模型在 newstest2017 数据集上的 BLEU 分数。Layers 列展示了编码器层和解码器层的数量。需要注意的是在不同的框架中,层的结构复杂度是有差异的。
表 7:在 newstest 2017 上变换器模型的 BLEU 得分。Marian 的更新分别为 41.5 万 14.5 万。
表 8 :在英翻德数据上,用 2 个 Volta P100 的训练速度。两个模型都是 100 万的更新/batch,Marian 使用了 4 个 Volta P100,且只有 41.5 万个更新。解码速度是在 WMT’17 英翻德测试集上测量的,使用了单个 Volta P100,batch size 为 16。输入长度被分拣为相似长度的 batch 语句。
表 9:在英翻德任务上,4 个 Volta P100 的训练速度如上图。解码速度是在 WMT'17 英翻德测试机上,beam size 为 5、batch size 为 16 的情况下测定的。
表 10:CNN 模型在 newstest 2017 上的 BLEU 得分
论文:SOCKEYE: A Toolkit for Neural Machine Translation
论文链接:https://arxiv.org/abs/1712.05690
摘要:我们在这里介绍 Sockeye(1.12 版),这是一个用于神经机器翻译(NMT)的开源序列到序列工具包。Sockeye 是一个生产就绪的框架,可为研究者提供针对训练、应用模型的实验性平台。该工具包由 Python 编写,建立在 MXNet 上,为三种最重要的编码器-解码器架构提供可扩展的训练和推断,分别是注意力循环神经网络(attentional recurrent neural networks)、自注意力转换器(self-attentional transformers)和全卷积网络(fully convolutional networks)。Sockeye 还支持多种优化器以及归一化、正则化技术,并利用当前的 NMT 文献提升了推断能力。用户可以很轻松地运行标准的训练流程、探索不同的模型设置,并结合新的想法。在这篇论文中,我们重点介绍了 Sockeye 的特征,并将 Sockeye 和其它的 NMT 工具包在 2017 年机器翻译会议(WMT)的两种语言翻译基准测试上进行了对比,分别是英语翻德语、拉脱维亚语翻英语。我们在三种架构上都得到了有竞争力的 BLEU 分数,其中在 Sockeye 的转换器实现上取得了综合最佳的分数。我们发布了所有在实验中使用的训练脚本和系统输出,以促进更详尽的对比。Sockeye 工具包是遵从 Apache 2.0 开源协议的免费软件。
本文为机器之心编译,转载请联系本公众号获得授权。