导读:近日,MetaAI发布了NLLB-200模型,宣布在200多种语言(其中有70%是低资源语言)上实现了任意互译。其中的亮点在于:研究者让大多数低资源语言训练数据量提升了多个数量级,相当于规模提升百倍甚至千倍;实现了200+语言翻译的平均新SOTA。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_算法

图注:NLLB团队统计的公开翻译数据(蓝色柱)和经过一系列方法后获得的训练数据(绿色柱)进行的对比。

目前,Meta已在其博客上公布了NLLB-200的最新应用:用多国语言翻译各国儿童故事。此外,利用NLLB-200实现元宇宙用户自由交流,也成为未来Meta关注的发展方向。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_编程语言_02

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_数据挖掘_03

机器翻译一直是自然语言处理领域的重要任务。随着预训练模型的出现,机器翻译模型的性能已经得到了明显的进步。然而,当前机器翻译主要解决的是英语与其他语言的互译。有大量的语言缺乏基本的训练数据,使得构建通用机器翻译模型成为无源之水、无本之木。

怎样解决困扰通用机器翻译研究的问题?千倍翻译数据增长背后使用哪些新技术?近日,智源社区邀请NLLB-200的作者之一,MetaAI研究科学家Maha Elbayad博士进行了详解。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_算法_04

作者介绍:Maha Elbayad博士是Meta AI的研究科学家,致力于研究低资源和大规模多语言机器翻译领域。在加入Meta之前,她获得了格勒诺布尔阿尔卑斯大学的应用数学和计算机科学博士学位,以及巴黎萨克雷高等师范学院和巴黎中央大学的应用数学理学硕士学位。

她的研究项目包括具有二维卷积的序列到序列模型、具有早期停止机制的计算高效Transformer解码器模型,以及具有K步等待解码机制的同声传译模型等。她共同组织了第二届自动同声传译Workshop和IWSLT 2021 & 2022同声传译共享任务。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_python_05

整理:戴一鸣

编辑:李梦佳

01

背景

当前,机器翻译领域的面临的一项挑战是:机器翻译主要是研究英语与其他语言之间的翻译问题。例如,有法语和英语的文本,用户想从法语翻译成英语,或者从英语翻译回法语,是可以用相同模型的。但如果想从英语翻译成中文,或者其他语言,就需要训练新的模型。

机器翻译领域的“圣杯”是发展一种通用的机器翻译方法,通过一个模型来实现多种领域下两个任意语言之间的互译。据统计,目前全球有超过4000种书面语言。如果我们将其扩展到非书面语言,这个数字会上升到7000。而目前谷歌翻译能够实现大约130种语言的翻译。微软翻译到今年7月达到110种。这里需要解决的问题是,如何才能打破130种语言的数量障碍,将可翻译的语言数目增加到200种以上?我们怎样能够确保在可互译语言数量增长的同时,保证翻译的质量,并且还能考虑到建立多语言机器翻译模型所带来的伦理影响。

机器翻译领域还面临着第二个问题:如何提升无资源语言的机器翻译效果?近年来,大部分机器翻译的研究和模型的提升都集中在高资源语言上。研究者拥有的数据越多,模型就可以训练得越多,获得更准确的模型。但如果数据较少,研究者就无法获得良好的翻译模型。正所谓“富者愈富,穷者愈穷”,NLLB的研究目标是通过训练多语言翻译模型,比较来自不同资源级别的数据,并增加不同语言之间的迁移能力。这样一来,数据较为丰富的语言能够帮助哪些数据相对较少的语言来提升效果。

当然,多语言机器翻译本身是具有多面性的问题。研究者不仅需要考虑技术层面的问题,如模型的构建、训练的方法、数据清洗和过滤的方法等,还需要考虑在有了大规模多语言机器翻译模型后所带来的伦理和社会影响。在NLLB团队中有30多位成员,包括来自语言学、社会学、人工智能、数据科学等方面的多位专家,共同合作完成了这项任务。

02

多语言建模、回译等多管齐下扩充低资源语言数据

机器翻译的目标是训练一个模型或概率分布,将在给定源句子x的情况下估计目标句y。训练过程中需要构建句子对(Sentence-pair),即从源语言(Souce Language)到目标语言(Target Language)能够对齐的一对句子。句子对数据是实现机器翻译模型训练的基石。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_python_06

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_python_07

但是,能够对齐的双语文本(Bitext)是非常稀缺的,特别是小语种领域。如上图的语种数据量柱形图所示,最右侧代表英语语种的数据量,其有着高质量的翻译文本。仅仅是WMT数据集,就有大约4000万个句子对,研究者已经可以基于这些数据训练大型模型,并实现接近人类质量的翻译。

另一方面,在图表左侧的语言资源较少。在这里,研究者设阈值为100万(对),任何低于 100万对句子的语言都称为低资源语言。在图表中,70%的语言是没有足够的数据来训练双语机器翻译模型的,共148种。这就需要采用一些技术方法,才能在如此低的资源条件下训练。

因此,在NLLB的研究过程中,研究者首先要做的就是扩展已有数据集的规模。他们采用了数据挖掘的方法,主要目标是收集非对齐的单语料数据(Monolingual Data),然后在这些文本之间建立可以翻译的潜在文本对。

数据挖掘流程有两个组成部分:一是语言识别,研究者自行构建了一个语言识别模型(Language Identification,LID),能够对获得的文本进行分类,判断属于哪种语言,如法语、中文、阿拉伯语等。二是构建多语言句子编码器(Multiangle Sentence Encoder),研究者提出了LASER-3模型,其能够将语言编码共同嵌入到一个公共的表示空间中。在这个表示空间中,研究者使用一些相似度搜索的方法,来判断两个句子之间是否是对称相似的。通过这种方法来扩充148种语言所需的翻译数据。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_大数据_08

在有了语言识别模型后,研究者通过人类验证的方法迭代提升模型的准确性。研究者爬取了网络的文本数据,并通过语言识别系统来识别文本的语言。在进行数据清洗后,再将文本映射到通用的表示空间中,并进行相似度搜索,直到构建出挖掘后的,可以用于训练的数据为止。同时,研究者基于已有的Bitext数据,通过训练编码器的方式来对挖掘数据进行验证。如果无法训练出一个机器翻译模型,则意味着挖掘的数据质量不佳。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_python_09

第二种增加训练数据的方法是回译(Back Translation),其方法是训练一个机器翻译模型,但训练目标是让模型根据目标侧的语言来生成源语言。机器翻译模型对于目标侧的数据质量相比源语言侧的更加敏感。当回译获得的数据足够多之后,就可以添加到挖掘数据的顶部。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_数据挖掘_10

总体上,团队的数据分为5个部分。其中最为干净的是NLLB-Seed。这些数据不依赖任何模型产生,质量也较高。接着是公共来源的翻译数据(Pblic Bitext),这是通过网络爬虫获得的Bitext,噪声相对较多。研究者只是按照原样使用他们。后三种数据是基于单语料建立的数据,包括用数据挖掘方法获得的翻译数据,以及两种通过回译方法获得的数据,分别采用了神经网络方法和统计机器翻译方法。

在未采用这些方法之前,70%语言的句子对少于100万。但在加上挖掘和回译方法后,大多数语言都超过了100万对,训练数据量提升了两个数量级,甚至有些语言提升了三个数量级(10^4到10^7),这为训练高质量的机器翻译模型奠定基础。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_数据挖掘_11

03

当MoE进入机器翻译,防止过拟合成为重点

模型的优化是研究者面临的第二个问题。在架构上,研究者采用了典型的Transformer架构,但是用了稀疏方法(专家模块),在不增加模型需要激活的参数情况下扩大其规模。然而,MoE模型面临的一个主要问题是过拟合。需要研究出新的方法来构建MoE模型。

NLLB的架构是由Transformer组成的。首先来看基础的Transformer层,其中包含正则化层、多头注意力层和前向网络(FFN),而这个层可以重复很多次(N),比如6个这种层的堆叠,甚至是24或者更多。对于MoE而言,其将单个的FFN替换为多个专家模块,如FFN_1到FFN_e。此外,FFN之前有MoE Gating模块,来决定应该由哪些FFN来进行计算。Gating一般来决定前K(Top-K)个专家模块进行计算。

由于MoE容易在翻译低资源语言时出现过拟合,因此研究者需要采用一些方法。例如,在英语向法语和英语向刚果语的翻译过程中可以看到,通常情况下,研究者会在其中加入Dropout层,但和密集模型进行对比可以发现,即使是加入了Dropout层的情况下,模型依然出现过拟合的情况。在这里,研究者采用了名为EOM(Experts Output Masking)的方法,代替了Dropout简单地去掉激活的方法。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_python_12

EOM的方法主要是对不同的专家输出进行遮盖。如下图所示,红绿蓝三色代表不同的Token,在路由过程中由不同的专家模块进行处理。在经过专家处理后,EoM会对部分专家的输出进行随机的遮盖。最后的输出是多个专家的加权和。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_算法_13

EOM能够提升模型的鲁棒性。考虑到MoE模块中带有残差连接层,所以当遮盖了一些专家后,模型不会非常地依赖混合专家模块,而是能够从残差连接中得到学习。此外,对于一些专家进行遮盖,能够避免让模型总是依赖于某一个专家,避免输出结果和某个专家特别绑定。

总结NLLB的技术,在数据层面,研究者训练了LASER-3模型,用于编码和学习不同语言的表示。同时他们训练了一个语言辨别模型,并探索了过滤、清洗等手段。在建模层面,NLLB模型整体上使用了MoE,但研究者也探索了教师学习、自监督学习等方法。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_python_14

在共同努力合作的情况下,团队最终研发了NLLB-200模型。研究者还公开了200+种语言的验证数据集(FLORES-200)。此外,研究者还公开了有害言论列表,帮助用户来清除这些言论。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_python_15

04

NLLB性能对比

NLLB模型的实际效果如何?下图中,研究者训练了三种模型:一种是只采用了原始的Bitext数据的模型(蓝色)。第二种是原始数据结合挖掘后的数据(灰色)。而最后一种是原始数据、挖掘数据和回译数据结合的模型(绿色)。

在效果评价方面,研究者根据资源(即原始翻译数据量)来分别评价模型的好坏。超过100万翻译对的是高资源语言,低于100万翻译对但超过100K的是低资源语言,低于100K个翻译对的是极低资源语言。在翻译类型上分为三种,包括从英语到任意语言,从任意语言到英语,以及任意语言之间。评价性能指标使用的是spBELU和chrF++。从下图中可以看到,结合了三种数据训练的模型效果最佳(绿色条带)。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_算法_16

在模型性能对比上,研究者采用了M2M-100、Deepnet和NLLB-200,对87和101种语言的翻译进行了对比,对比数据集采用了FLORES-101。NLLB-200平均性能比最近的SOTA高出了7.3的spBLEU分值。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_大数据_17

此外,研究者使用NLLB在自创的FLORES-200数据集上进行了任意语言的互译,并对比了不同资源级别语言的翻译性能。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_编程语言_18

由于翻译语料来自维基百科,研究者也在WMT等其他的数据集上进行了测试。研究者也在聊天、医疗、新闻和文本四个领域进行了测试,取得了一定的效果。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_算法_19

目前,NLLB模型及相关数据集已经开源,并集成到HuggingFace的模型库中。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_算法_20

05

训练NLLB消耗5万多GPU小时,可能在教育、元宇宙等领域应用

在分享后,观众向Elbayad博士进行了提问,智源社区对部分回答进行了节选。

Q:NLLB模型消耗的算力是多少?如果要将机器翻译模型部署在移动端等场景上,需要做哪些工作?

A:NLLB研究使用的是GPU A100芯片,在训练方面总共花费了5万个GPU小时进行训练,相当于连续训练模型3周的时间。

在论文中已经提到,团队对NLLB模型进行了小型化的研究,如进行蒸馏等。如下图所示,NLLB模型的初始规模为540亿,研究者将其作为教师模型分别蒸馏了13亿参数和6.15亿参数的学生模型(Dense Distilled)。将学生模型和基准进行对比发现,蒸馏后模型的效果依然较好。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_算法_21

Q:NLLB目前有无商业化的规划和想法?可能会在哪些领域得到应用?

A:Elbayad博士不掌握商业化方面的信息,Meta内部有专门负责商业化的团队进行推动。

对于可能的应用领域,目前NLLB模型可能在教育和公共服务方面有所进展。根据Meta官方博客,NLLB已经可以对儿童书籍进行翻译。可能在儿童教育方面有发展的潜力。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_编程语言_22

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_编程语言_23

此外,官网也提到了NLLB-200在维基百科、社交软件(如Instagram)上的应用——提供低资源语言的高质量翻译服务。而Meta也不忘记自己的老本行——元宇宙的发展。在NLLB的加持下,实现全球元宇宙用户的自由交流,似乎也不再是一个过于遥远的目标。

一般的机器翻译模型训练能把loss降到多少 机器翻译最新模型_算法_24

图注:NLLB-200博客介绍的四大应用场景:社交软件、元宇宙、体验式场景(如旅游)和教育。

参考资料

[1] NLLB-200论文:https://arxiv.org/abs/2207.04672

[2] NLLB-200官方网站:https://ai.facebook.com/research/no-language-left-behind/

[3] NLLB-200博客:https://ai.facebook.com/blog/nllb-200-high-quality-machine-translation/