1.7 开源项目与评测 41
1.7 开源项目与评测
从实践的角度,机器翻译的发展主要可以归功于两方面的推动作用:开源系统
和评测。开源系统通过代码共享的方式使得最新的研究成果可以快速传播,同时实
验结果可以复现。而评测比赛,使得各个研究组织的成果可以进行科学的对比,共
同推动机器翻译的发展与进步。此外,开源项目也促进了不同团队之间的协作,让
研究人员在同一个平台上集中力量攻关。
1.7.1 开源机器翻译系统
下面列举一些优秀的开源机器翻译系统:
统计机器翻译开源系统
• NiuTrans.SMT。NiuTrans[322] 是由东北大学自然语言处理实验室自主研发的统
计机器翻译系统,该系统可支持基于短语的模型、基于层次短语的模型以及基
于句法的模型。由于使用 C++ 语言开发,所以该系统运行时间快,所占存储空
间少。系统中内嵌有 ngram 语言模型,故无需使用其他的系统即可对完成语
言建模。网址:http://opensource.niutrans.com/smt/index.html
• Moses。Moses[150] 是统计机器翻译时代最著名的系统之一,(主要)由爱丁
堡大学的机器翻译团队开发。最新的 Moses 系统支持很多的功能,例如,它
既支持基于短语的模型,也支持基于句法的模型。Moses 提供因子化翻译模型
(Factored Translation Model),因此该模型可以很容易地对不同层次的信息进行
建模。此外,它允许将混淆网络和字格作为输入,可缓解系统的 1best 输出中
的错误。Moses 还提供了很多有用的脚本和工具,被机器翻译研究者广泛使用。
网址:http://www.statmt.org/moses/
• Joshua。Joshua[174] 是由约翰霍普金斯大学的语言和语音处理中心开发的层次
短语翻译系统。由于 Joshua 是由 Java 语言开发,所以它在不同的平台上运行
或开发时具有良好的可扩展性和可移植性。Joshua 也是使用非常广泛的开源器
翻译系统之一。网址:https://cwiki.apache.org/confluence/display/JO
SHUA/
• SilkRoad。SilkRoad 是由五个国内机构(中科院计算所、中科院软件所、中科院
自动化所、厦门大学和哈尔滨工业大学)联合开发的基于短语的统计机器翻译
系统。该系统是中国乃至亚洲地区第一个开源的统计机器翻译系统。SilkRoad
支持多种解码器和规则提取模块,这样可以组合成不同的系统,提供多样的选
择。网址:http://www.nlp.org.cn/project/project.php?projid=14
• SAMT。SAMT[357] 是由卡内基梅隆大学机器翻译团队开发的语法增强的统计
机器翻译系统。SAMT 在解码的时候使用目标树来生成翻译规则,而不严格遵
42 Chapter 1. 机器翻译简介 肖桐 朱靖波
守目标语言的语法。SAMT 的一个亮点是它提供了简单但高效的方式在机器翻
译中使用句法信息。由于 SAMT 在 hadoop 中实现,它可受益于大数据集的分
布式处理。网址:http://www.cs.cmu.edu/zollmann/samt/
• HiFST。HiFST[122] 是剑桥大学开发的统计机器翻译系统。该系统完全基于有
限状态自动机实现,因此非常适合对搜索空间进行有效的表示。网址:http:
//ucam-smt.github.io/
• cdec。cdec[67] 是一个强大的解码器,是由 Chris Dyer 和他的合作者们一起开发。
cdec 的主要功能是它使用了翻译模型的一个统一的内部表示,并为结构预测问
题的各种模型和算法提供了实现框架。所以,cdec 也可以在被用来做一个对齐
系统或者一个更通用的学习框架。此外,由于使用 C++ 语言编写,cdec 的运行
速度较快。网址:http://cdec-decoder.org/index.php?title=MainPage
• Phrasal。Phrasal[28] 是由斯坦福大学自然语言处理小组开发的系统。除了传统
的基于短语的模型,Phrasal 还支持基于非层次短语的模型,这种模型将基于
短语的翻译延伸到非连续的短语翻译,增加了模型的泛化能力。网址:http:
//nlp.stanford.edu/phrasal/
• Jane。Jane[290] 是一个基于短语和基于层次短语的机器翻译系统,由亚琛工业
大学的人类语言技术与模式识别小组开发。Jane 提供了系统融合模块,因此可
以非常方便的对多个系统进行融合。网址:https://www-i6.informatik.rw
th-aachen.de/jane/
• GIZA++。GIZA++[221] 是 Franz Och 研发的用于训练 IBM 模型 15 和 HMM 单
词对齐模型的工具包。在早期,GIZA++ 是所有统计机器翻译系统中词对齐的
标配工具。网址:https://github.com/moses-smt/giza-pp
• FastAlign。FastAlign[66] 是一个快速,无监督的词对齐工具,由卡内基梅隆大
学开发。网址:https://github.com/clab/fast_align
神经机器翻译开源系统
• GroundHog。GroundHog[7] 基于 Theano[239] 框架,由蒙特利尔大学 LISA 实验
室使用 Python 语言编写的一个框架,旨在提供灵活而高效的方式来实现复杂
的循环神经网络模型。它提供了包括 LSTM 在内的多种模型。Bahdanau 等人
在此框架上又编写了 GroundHog 神经机器翻译系统。该系统也作为了很多论
文的基线系统。网址:https://github.com/lisa-groundhog/GroundHog
• Nematus。Nematus[249] 是英国爱丁堡大学开发的,基于 Theano 框架的神经机
器翻译系统。该系统使用 GRU 作为隐层单元,支持多层网络。Nematus 编码端
有正向和反向的编码方式,可以同时提取源语句子中的上下文信息。该系统的
一个优点是,它可以支持输入端有多个特征的输入(例如词的词性等)。网址:
1.7 开源项目与评测 43
https://github.com/EdinburghNLP/nematus
• ZophRNN。ZophRNN[360] 是由南加州大学的 Barret Zoph 等人使用 C++ 语言
开发的系统。Zoph 既可以训练序列表示模型(如语言模型),也可以训练序列
到序列的模型(如神经机器翻译模型)。当训练神经机器翻译系统时,ZophRNN
也支持多源输入。网址:https://github.com/isi-nlp/Zoph_RNN
• Fairseq。Fairseq[224] 是由 Facebook 开发的,基于 PyTorch 框架的用以解决序
列到序列问题的工具包,其中包括基于卷积神经网络、基于循环神经网络、基
于 Transformer 的模型等。Fairseq 是当今使用最广泛的神经机器翻译开源系统
之一。网址:https://github.com/facebookresearch/fairseq
• Tensor2Tensor。Tensor2Tensor[287] 是由谷歌推出的,基于 TensorFlow 框架的开
源系统。该系统基于 Transformer 模型,因此可以支持大多数序列到序列任务。
得益于 Transformer 的网络结构,系统的训练速度较快。现在,Tensor2Tensor 也
是机器翻译领域广泛使用的开源系统之一。网址:https://github.com/ten
sorflow/tensor2tensor
• OpenNMT。OpenNMT[143] 系统是由哈佛大学自然语言处理研究组开源的,基
于 Torch 框架的神经机器翻译系统。OpenNMT 系统的早期版本使用 Lua 语言
编写,现在也扩展到了 TensorFlow 和 PyTorch,设计简单易用,易于扩展,同
时保持效率和翻译精度。网址:https://github.com/OpenNMT/OpenNMT
• 斯坦福神经机器翻译开源代码库。斯坦福大学自然语言处理组(Stanford NLP)
发布了一篇教程,介绍了该研究组在神经机器翻译上的研究信息,同时实现了
多种翻译模型 [187]。网址:https://nlp.stanford.edu/projects/nmt/
• THUMT。清华大学 NLP 团队实现的神经机器翻译系统,支持 Transformer 等
模型 [344]。该系统主要基于 TensorFlow 和 Theano 实现,其中 Theano 版本包
含了 RNNsearch 模型,训练方式包括 MLE (Maximum Likelihood Estimate),
MRT
(Minimum Risk Training), SST(SemiSupervised Training)。TensorFlow 版本实
现了 Seq2Seq, RNNsearch, Transformer 三种基本模型。网址:https://github
.com/THUNLP-MT/THUMT
• NiuTrans.NMT。由小牛翻译团队基于 NiuTensor 实现的神经机器翻译系统。支
持循环神经网络、Transformer 等结构,并支持语言建模、序列标注、机器翻译
等任务。支持机器翻译 GPU 与 CPU 训练及解码。其小巧易用,为开发人员提
供快速二次开发基础。此外,NiuTrans.NMT 已经得到了大规模应用,形成了支
持 187 种语言翻译的小牛翻译系统。网址:http://opensource.niutrans.co
m/niutensor/index.html
• MARIAN。主要由微软翻译团队搭建 [133],其使用 C++ 实现的用于 GPU/CPU
44 Chapter 1. 机器翻译简介 肖桐 朱靖波
训练和解码的引擎,支持多 GPU 训练和批量解码,最小限度依赖第三方库,
静态编译一次之后,复制其二进制文件就能在其他平台使用。网址:https:
//marian-nmt.github.io/
• Sockeye。由 Awslabs 开发的神经机器翻译框架 [107]。其中支持 RNNsearch、
Transformer、CNN 等翻译模型,同时提供了从图片翻译到文字的模块以及 WMT
德英新闻翻译、领域适应任务、多语言零资源翻译任务的教程。网址:https:
//awslabs.github.io/sockeye/
• CytonMT。由 NICT 开发的一种用 C++ 实现的神经机器翻译开源工具包 [302]。
主要支持 Transformer 模型,并支持一些常用的训练方法以及解码方法。网址:
https://github.com/arthurxlw/cytonMt
• OpenSeq2Seq。由 NVIDIA 团队开发的 [157] 基于 TensorFlow 的模块化架构,用
于序列到序列的模型,允许从可用组件中组装新模型,支持混合精度训练,利
用 NVIDIA Volta Turing GPU 中的 Tensor 核心,基于 Horovod 的快速分布式训
练,支持多 GPU,多节点多模式。网址:https://nvidia.github.io/OpenS
eq2Seq/html/index.html
• NMTPyTorch。由勒芒大学语言实验室发布的基于序列到序列框架的神经网络
翻译系统 [26],NMTPyTorch 的核心部分依赖于 Numpy,PyTorch 和 tqdm。其
允许训练各种端到端神经体系结构,包括但不限于神经机器翻译、图像字幕和
自动语音识别系统。网址:https://github.com/lium-lst/nmtpytorch
1.7.2 常用数据集及公开评测任务
机器翻译相关评测主要有两种组织形式,一种是由政府及国家相关机构组织,权
威性强。如由美国国家标准技术研究所组织的 NIST 评测、日本国家科学咨询系统
中心主办的 NACSIS Test Collections for IR(NTCIR)PatentMT、日本科学振兴机构
(Japan Science and Technology Agency,简称 JST)等组织联合举办的 Workshop on
Asian Translation(WAT)以及国内由中文信息学会主办的全国机器翻译大会(China
Conference on Machine Translation,简称 CCMT);另一种是由相关学术机构组织,具
有领域针对性的特点,如倾向新闻领域的 Conference on Machine Translation(WMT)
以及面向口语的 International Workshop on Spoken Language Translation(IWSLT)。下
面将针对上述评测进行简要介绍。
• CCMT(全国机器翻译大会),前身为 CWMT(全国机器翻译研讨会)是国内
机器翻译领域的旗舰会议,自 2005 年起已经组织多次机器翻译评测,对国内
机器翻译相关技术的发展产生了深远影响。该评测主要针对汉语、英语以及国
内的少数民族语言(蒙古语、藏语、维吾尔语等)进行评测,领域包括新闻、
口语、政府文件等,不同语言方向对应的领域也有所不同。评价方式不同届略
1.7 开源项目与评测 45
有不同,主要采用自动评价的方式,自 CWMT 2013 起则针对某些领域增设人
工评价。自动评价的指标一般包括 BLEUSBP、BLEUNIST、TER、METEOR、
NIST、GTM、mWER、mPER 以及 ICT 等,其中以 BLEUSBP 为主,汉语为
目标语的翻译采用基于字符的评价方式,面向英语的翻译采用基于词的评价
方式。每年该评测吸引国内外近数十家企业及科研机构参赛,业内认可度极
高。关于 CCMT 的更多信息可参考中文信息学会机器翻译专业委员会相关页
面:http://sc.cipsc.org.cn/mt/index.php/CWMT.html。
• WMT 由 Special Interest Group for Machine Translation(SIGMT)主办,会议自
2006 年起每年召开一次,是一个涉及机器翻译多种任务的综合性会议,包括
多领域翻译评测任务、质量评价任务以及其他与机器翻译的相关任务(如文档
对齐评测等)。现在 WMT 已经成为机器翻译领域的旗舰评测会议,很多研究
工作都以 WMT 评测结果作为基准。WMT 评测涉及的语言范围较广,包括英
语、德语、芬兰语、捷克语、罗马尼亚语等十多种语言,翻译方向一般以英语
为核心,探索英语与其他语言之间的翻译性能,领域包括新闻、信息技术、生
物医学。最近,也增加了无指导机器翻译等热门问题。WMT 在评价方面类似
于 CCMT,也采用人工评价与自动评价相结合的方式,自动评价的指标一般
为 BLEU、TER 等。此外,WMT 公开了所有评测数据,因此也经常被机器翻
译相关人员所使用。更多 WMT 的机器翻译评测相关信息可参考 SIGMT 官网:
http://www.sigmt.org/。
• NIST 机器翻译评测开始于 2001 年,是早期机器翻译公开评测中颇具代表性
的任务,现在 WMT 和 CCMT 很多任务的设置也大量参考了当年 NIST 评测
的内容。NIST 评测由美国国家标准技术研究所主办,作为美国国防高级计划
署(DARPA)中 TIDES 计划的重要组成部分。早期,NIST 评测主要评价阿
拉伯语和汉语等语言到英语的翻译效果,评价方法一般采用人工评价与自动
评价相结合的方式。人工评价采用 5 分制评价。自动评价使用多种方式,包
括 BLEU,METEOR,TER 以及 HyTER。此外 NIST 从 2016 年起开始对稀
缺语言资源技术进行评估,其中机器翻译作为其重要组成部分共同参与评测,
评测指标主要为 BLEU。除对机器翻译系统进行评测之外,NIST 在 2008 和
2010 年对于机器翻译的自动评价方法(MetricsMaTr)也进行了评估,以鼓励
更多研究人员对现有评价方法进行改进或提出更加贴合人工评价的方法。同
时 NIST 评测所提供的数据集由于数据质量较高受到众多科研人员喜爱,如
MT04,MT06 等(汉英)平行语料经常被科研人员在实验中使用。不过,近
几年 NIST 评测已经停止。更多 NIST 的机器翻译评测相关信息可参考官网:
https://www.nist.gov/programs-projects/machine-translation。
• 从 2004 年开始举办的 IWSLT 也是颇具特色的机器翻译评测,它主要关注口
语相关的机器翻译任务,测试数据包括 TED talks 的多语言字幕以及 QED 教
46 Chapter 1. 机器翻译简介 肖桐 朱靖波
育讲座影片字幕等,语言涉及英语、法语、德语、捷克语、汉语、阿拉伯语等
众多语言。此外在 IWSLT 2016 中还加入了对于日常对话的翻译评测,尝试将
微软 Skype 中一种语言的对话翻译成其他语言。评价方式采用自动评价的模
式,评价标准和 WMT 类似,一般为 BLEU 等指标。另外,IWSLT 除了对文
本到文本的翻译评测外,还有自动语音识别以及语音转另一种语言的文本的评
测。更多 IWSLT 的机器翻译评测相关信息可参考 IWSLT 2019 官网:https:
//workshop2019.iwslt.org/。
• 日本举办的机器翻译评测 WAT 是亚洲范围内的重要评测之一,由日本科学
振兴机构(JST)、情报通信研究机构(NICT)等多家机构共同组织,旨在为
亚洲各国之间交流融合提供便宜之处。语言方向主要包括亚洲主流语言(汉
语、韩语、印地语等)以及英语对日语的翻译,领域丰富多样,包括学术论
文、专利、新闻、食谱等。评价方式包括自动评价(BLEU、RIBES 以及 AMFM
等)以及人工评价,其特点在于对于测试语料以段落为单位进行评价,考察
其上下文关联的翻译效果。更多 WAT 的机器翻译评测相关信息可参考官网:
http://lotus.kuee.kyoto-u.ac.jp/WAT/。
• NTCIR 计划是由日本国家科学咨询系统中心策划主办的,旨在建立一个用在
自然语言处理以及信息检索相关任务上的日文标准测试集。在 NTCIR9 的和
NTCIR10 中开设的 Patent Machine Translation(PatentMT)任务主要针对专利
领域进行翻译测试,其目的在于促进机器翻译在专利领域的发展和应用。在
NTCIR9 中,评测方式采取人工评价与自动评价相结合,以人工评价为主导。
人工评价主要根据准确度和流畅度进行评估,自动评价采用 BLEU、NIST 等
方式进行。NTCIR10 评价方式在此基础上增加了专利审查评估、时间评估以
及多语种评估,分别考察机器翻译系统在专利领域翻译的实用性、耗时情况
以及不同语种的翻译效果等。更多 NTCIR 评测相关信息可参考官网:http:
//research.nii.ac.jp/ntcir/index-en.html。
以上评测数据大多可以从评测网站上下载,此外部分数据也可以从 LDC(Lingu
istic Data Consortium)上申请,网址为https://www.ldc.upenn.edu/。ELRA(Euro
pean Language Resources Association)上也有一些免费的语料库供研究使用,其官网
为http://www.elra.info/。更多机器翻译的语料信息可参看附录A。
从机器翻译发展的角度看,这些评测任务给相关研究提供了基准数据集,使得
不同的系统都可以在同一个环境下进行比较和分析,进而建立了机器翻译研究所需
的实验基础。此外,公开评测也使得研究者可以第一时间了解机器翻译研究的最新
成果,比如,有多篇 ACL 会议最佳论文的灵感就来自当年参加机器翻译评测任务的
系统。