A. 附录 A
从实践的角度,机器翻译的发展离不开开源系统的推动作用。开源系统通过代
码共享的方式使得最新的研究成果可以快速传播,同时实验结果可以复现。此外,
源项目也促进了不同团队之间的协作,让研究人员在同一个平台上集中力量攻关。
A.1 统计机器翻译开源系统
NiuTrans.SMTNiuTrans
[1194]
是由东北大学自然言处理实验室自主发的
计机器翻译系统,该系统可支持基于短语的模型、基于层次短语的模型以及基
于句法的模型。由于使用 C++ 语言开发,所以该系统运行时间快,所占存储空
间少。系统中内嵌有 n-gram 语言模型,故无需使用其他的系统即可对完成
言建模。
MosesMoses
[80]
是统计机器翻译时代最著名的系统之一,(主要)由爱丁堡大
学的机器翻译团队开发。最新的 Moses 系统支持很多的功能,例如,它既支持基
于短语的模型,也支持基于句法的模型。Moses 提供因子化翻译模型Factored
Translation Model,因此该模型可以很容易地对不同层次的信息进行建模。此
外,它将混络和作为入,可缓统的 1-best 出中错误。
Moses 还提供了很多有用的脚本和工具,被机器翻译研究人员广泛使用。
JoshuaJoshua
[1195]
是由约翰霍普金斯大学的语言和语音处理中心开发的层次短
语翻译系统。由于 Joshua 是由 Java 语言开发,所以它在不同的平台上运行或
632 Chapter A. 附录 A 肖桐 朱靖波
开发时具有良好的可扩展性和可移植性。Joshua 也是使用非常广泛的开源机器
翻译系统之一。
SilkRoadSilkRoad 是由五个国内机构(中科院计算所、中科院软件所、中科院
自动化所、厦门大学和哈尔滨工业大学)联合开发的基于短语的统计机器翻译
系统。该系统是中国乃至亚洲地区第一个开源的统计机器翻译系统。SilkRoad
支持多种解码器和规则提取模块,这样可以组合成不同的系统,提供多样的选
择。
SAMTSAMT
[85]
是由卡内基梅隆大学机器翻译团队开发的基于语法增强的统
计机器翻译系统。SAMT 在解码的时候使用目标树来生成翻译规则,而不严格
遵守目标语言的语法。SAMT 的一个亮点是它提供了简单但高效的方式在机器
翻译中使用句法信息。由于 SAMT hadoop 中实现,所以具备 hadoop 处理大
数据集的优势。
HiFSTHiFST
[1196]
是剑桥大学开发的统计机器翻译系统。该系统完全基于有限
状态自动机实现,因此非常适合对搜索空间进行有效的表示。
cdeccdec
[1197]
是一强大解码器,是由 Chris Dyer 合作们一
发。cdec 的主要功能是它使用了翻译模型的一个统一的内部表示,并为结构预
测问题的各种模型和算法提供了实现框架。所以,cdec 也可以被用来做一个对
齐系统或者一个更通用的学习框架。此外,由于使用 C++ 语言编写,cdec 的运
行速度较快。
PhrasalPhrasal
[1198]
是由斯坦福大学自然语言处理小组开发的系统。除了传统
的基于短语的模型,Phrasal 还支持基于非层次短语的模型,这种模型将基于短
语的翻译延伸到非连续的短语翻译,增加了模型的泛化能力。
JaneJane
[1199]
是一个基于层次短语的机器翻译系统,由亚琛工业大学的人类语
言技术与模式识别小组开发。Jane 提供了系统融合模块,因此可以非常方便的
对多个系统进行融合。
GIZA++GIZA++
[242]
Franz Och 发的用于训练 IBM 模型 1-5 HMM
词对齐模型的工具包。在早期,GIZA++ 是所有统计机器翻译系统中词对齐的
标配工具。
FastAlignFastAlign
[252]
是一个快速,无监督的词对齐工具,由卡内基梅隆大学
开发。
A.2 神经机器翻译开源系统 633
A.2 神经机器翻译开源系统
GroundHogGroundHog
[22]
基于 Theano
[1200]
框架,由蒙特利尔大学 LISA
室使 Python 言编的一框架,在提灵活效的式来现复
的循环神网络型。它供了包括 LSTM 内的种模型。Bahdanau 等人
在此又编 GroundHog 经机系统。也作多论
文的基线系统。
NematusNematus
[471]
是英国爱丁堡大学开发的,基于 Theano 框架的神经机器
翻译系统。该系统使用 GRU 作为隐层单元,支持多层网络。Nematus 编码端有
正向和反向的编码方式,可以同时提取源语言句子中的上下文信息。该系统的
一个优点是,它可以支持输入端有多个特征的输入(例如词的词性等)
ZophRNNZophRNN
[1201]
是由南加州大学的 Barret Zoph 等人使用 C++ 语言开
发的系统。Zoph 既可以训练序列表示模型(如语言模型),也可以训练序列到
序列的模型(如神经机器翻译模型)。当训练神经机器翻译系统时,ZophRNN
也支持多源输入。
FairseqFairseq
[817]
是由 Facebook 开发的,基 PyTorch 框架的用以解决序列
到序列问题的工具包,其中包括基于卷积神经网络、基于循环神经网络、基于
Transformer 的模等。Fairseq 今使广泛经机译开统之
一。
Tensor2TensorTensor2Tensor
[537]
是由谷歌推出的,基于 TensorFlow 框架的开源
系统。该系统基于 Transformer 模型,因此可以支持大多数序列到序列任务。
益于 Transformer 特殊的网络结构,系统的训练速度较快。现在,Tensor2Tensor
也是机器翻译领域广泛使用的开源系统之一。
OpenNMTOpenNMT
[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, SSTSemi-Supervised TrainingTensorFlow 版本实
现了 Seq2Seq, RNNsearch, Transformer 三种基本模型。
634 Chapter A. 附录 A 肖桐 朱靖波
NiuTrans.NMT。由小牛翻译团队基于 NiuTensor 实现的神经机器翻译系统。该
系统支持循环神经网络、Transformer 等结构,并支持语言建模、序列标注、
器翻译等任务,为开发人员提供快速二次开发基础,支持 GPU CPU 训练及
解码,小巧易用。此外,NiuTrans.NMT 已经得到了大规模应用,形成了可用于
304 种语言翻译的小牛翻译系统。
MARIAN主要由微软翻译团队搭建
[1203]
其使用 C++ 实现的可用于 GPU/CPU
训练和解码的引擎,支持多 GPU 训练和批量解码,最小限度依赖第三方库,
态编译一次之后,复制其二进制文件就能在其他平台使用。
Sockeye Awslabs 开发的神经机器翻译框架
[1204]
其中支持 RNNsearchTrans-
formerCNN 等翻译模型,同时提供了从图片翻译到文字的模块以及 WMT
英新闻翻译、领域适应任务、多语言零资源翻译任务的教程。
CytonMT NICT 开发的一种用 C++ 实现的神经机器翻译开源工具包
[1205]
要支持 Transformer 模型,并支持一些常用的训练方法以及解码方法。
OpenSeq2Seq。由 NVIDIA 团队开发的
[1206]
基于 TensorFlow 的模块化架构,用
于序列到序列的模型,允许从可用组件中组装新模型,支持利用 NVIDIA Volta
Turing GPU 中的 Tensor 心进行混合精度训练,基于 Horovod 快速分布
训练,支持多 GPU,多节点多模式。
NMTPyTorch。由勒芒大学语言实验室发布的基于序列到序列框架的神经网络
翻译系统
[1207]
NMTPyTorch 的核心部依赖 NumpyPyTorch tqdm
以训练各种端到端神经体系结构,包括但不限于神经机器翻译、图像字幕和自
动语音识别系统。