A.2 神经机器翻译开源系统 633
A.2 神经机器翻译开源系统
• GroundHog。GroundHog
[22]
基于 Theano
[1200]
框架,由蒙特利尔大学 LISA 实验
室使用 Python 语言编写的一个框架,旨在提供灵活而高效的方式来实现复杂
的循环神经网络模型。它提供了包括 LSTM 在内的多种模型。Bahdanau 等人
在此框架上又编写了 GroundHog 神经机器翻译系统。该系统也作为了很多论
文的基线系统。
• Nematus。Nematus
[471]
是英国爱丁堡大学开发的,基于 Theano 框架的神经机器
翻译系统。该系统使用 GRU 作为隐层单元,支持多层网络。Nematus 编码端有
正向和反向的编码方式,可以同时提取源语言句子中的上下文信息。该系统的
一个优点是,它可以支持输入端有多个特征的输入(例如词的词性等)。
• ZophRNN。ZophRNN
[1201]
是由南加州大学的 Barret Zoph 等人使用 C++ 语言开
发的系统。Zoph 既可以训练序列表示模型(如语言模型),也可以训练序列到
序列的模型(如神经机器翻译模型)。当训练神经机器翻译系统时,ZophRNN
也支持多源输入。
• Fairseq。Fairseq
[817]
是由 Facebook 开发的,基于 PyTorch 框架的用以解决序列
到序列问题的工具包,其中包括基于卷积神经网络、基于循环神经网络、基于
Transformer 的模型等。Fairseq 是当今使用最广泛的神经机器翻译开源系统之
一。
• Tensor2Tensor。Tensor2Tensor
[537]
是由谷歌推出的,基于 TensorFlow 框架的开源
系统。该系统基于 Transformer 模型,因此可以支持大多数序列到序列任务。得
益于 Transformer 特殊的网络结构,系统的训练速度较快。现在,Tensor2Tensor
也是机器翻译领域广泛使用的开源系统之一。
• OpenNMT。OpenNMT
[694]
系统是由哈佛大学自然语言处理研究组开源的,基于
Torch 框架的神经机器翻译系统。OpenNMT 系统的早期版本使用 Lua 语言编
写,现在也扩展到了基于 python 的 TensorFlow 和 PyTorch,设计简单易用,易
于扩展,同时保持效率和翻译精度。
• 斯坦福神经机器翻译开源代码库。斯坦福大学自然语言处理组(Stanford NLP)
发布了一篇教程,介绍了该研究组在神经机器翻译上的研究信息,同时实现了
多种翻译模型
[564]
。
• THUMT。清华大学 NLP 团队实现的神经机器翻译系统,支持 Transformer 等模
型
[1202]
。该系统主要基于 TensorFlow 和 Theano 实现,其中 Theano 版本包含了
RNNsearch 模型,训练方式包括 MLE (Maximum Likelihood Estimate), MRT
(Minimum Risk Training), SST(Semi-Supervised Training)。TensorFlow 版本实
现了 Seq2Seq, RNNsearch, Transformer 三种基本模型。