写点什么

打破语言壁垒:谷歌推 M4 翻译模型,训练参数多达 500 亿,支持 103 种语言

  • 2019-10-16
  • 本文字数:3015 字

    阅读完需:约 10 分钟

打破语言壁垒:谷歌推M4翻译模型,训练参数多达500亿,支持103种语言


据《圣经·创世纪》第十一章记载,巴别塔是由当时人类联合兴建,希望能够借其通往天堂的通天塔。为阻止人类的计划,上帝让人类说不同的语言,使人类之间不能相互沟通,因此人类计划最后以失败告终。终结人类语言的壁垒,一直是科学家们的目标,时光之轮转到 21 世纪的今天,曙光仿佛就在眼前。近期,Google AI 分享了他们在大规模多语言、大规模神经机器翻译方面的相关探索。所以,人类真的能够建造巴别塔吗?答案是:也许可以。


“也许翻译的方式可能是从每种语言沉降到人类交流的共同基础,即真实的但尚未被发现的通用语言,然后再以任何方便的特定方式重新出现。”


——Warren Weaver,1949 年


在过去的几年里,由于神经机器翻译(Neural Machine Translation,NMT)的发展,机器翻译(Machine Translation,MT)系统的质量出现了飞跃,打破了世界各地的语言障碍。然而,神经机器翻译的成功,很大程度上要归功于大量监督学习的训练数据。但是,对于那些数据稀少、甚至没有数据的语言,又该怎么办呢?多语言神经机器翻译是一种潜在的补救措施,它带有归纳性的偏见,认为“一种语言的学习信号应该有利于翻译到其他语言的质量。”


多语言机器翻译使用单一翻译模型来处理多种语言。数据稀缺语言的多语言训练的成功,已经在自动语音识别文本转语音系统,以及之前的多语言翻译的研究 [123] 中得到证明。我们先前研究了在控制每种语言的训练数据量的同时,增加单个神经网络可学习的语言数量的效果。但是,一旦所有的约束都被解除,将会发生什么呢?尽管不同语言在数据大小、脚本、复杂性和域方面存在巨大的差异,但我们能不能利用所有可用的数据来训练一个单一的模型呢?


Massively Multilingual Neural Machine Translation in the Wild: Findings and Challenges (《大规模多语言神经机器翻译现状:发现与挑战》以及后续的论文 [4567],我们通过对超过 250 亿个句子对(从 100 多种语言与英语的双向语言对)上使用 500 多亿个参数,对单个神经机器翻译模型进行训练,从而突破了多语言神经机器翻译研究的极限。其结果是一种大规模多语言、大规模神经机器翻译(Massively Multilingual, Massive Neural Machine Translation,M4)的方法,在低资源语言和高资源语言上均表现出巨大的质量飞跃,并且可以很容易地适应各个域 / 语言,同时在跨语言下游移转任务上表现出极高的效率。

大规模多语言机器翻译

尽管跨语言对的数据倾斜(Data Skew)在神经机器翻译中是一个巨大的挑战,但它也为研究语言移转创造了一个理想的场景,在这个场景中,通过一种语言的训练获得的洞见可以应用于其他语言的翻译。在分布的一段,有像法语、德语和西班牙语这样的高资源语言,它们有数十亿个并行的例子,而在另一端,像约鲁巴语(Yoruba,非洲西部的一种语言)、信德语(Sindhi,巴基斯坦信德省和印度西部的一种语言)和夏威夷语这种地资源语言的监督学习数据,仅限于几万个。



在所有语言对上的数据分布(以对数标度)和双语基线的相对翻译质量(BLEU 得分)对这些特定语言对进行训练。


一旦使用所有可用数据(来自 103 种语言的超过 250 亿个样本)进行训练,我们就会观察到向低资源语言的强烈正向移转,从而使分布尾部的 30 多种语言的翻译质量平均提高了 5 个 BLEU 点。这种影响已为人所知,但令人惊讶的是,考虑到这种比较在双语基线(即仅在特定语言对上进行训练的模型)和具有类似于单一双语模型的表示能力之间进行的,这种比较结果令人鼓舞。这一发现暗示了大规模多语言模型在泛化方面是有效的,并且能够捕获大量语言之间的代表性相似性。



针对 103 对语言对中的每一种语言对进行训练,将单一大规模多语言模型与双语基线进行翻译质量比较。


在 EMNLP 的 19 篇论文 [5] 中,我们比较了不同语言之间的多语言模型的表示方式。我们发现,多语言模型无需外部约束即可学习语言相似的语言的共享表示,从而验证了利用这些相似性长期直觉和经验结果。在 Evaluating the Cross-Lingual Effectiveness of Massively Multilingual Neural Machine Translation(《大规模多语言神经机器翻译跨语言效果评估》)[6] 中,我们进一步证明了这些学习表征在下游任务的跨语言移转中的有效性。



基于表征相似性的所有 103 种语言编码表征的聚类可视化。语言按其语系进行颜色编码。


译注:语言移转(Language Transfer),指的是说话者或写作者在使用第二语言时,也运用了他们母语知识的一种现象。标准的定义为一种语言对学习另一种语言的影响。当两种语言的语言结构或单位相当类似时,语言移转的现象就看有可能发生。语言移转包括正向移转(Positive Transfer)和负向移转(Negative Transfer)。正向移转是发生在语言移转时,说话者仍说出正确的目标语的现象。而负向移转是发生在说话者将和目标语结构不同的一个语言套用在目标语里。在对比分析的理论里,两个语言的差异越大,负向移转的情况就越多。

构建大规模神经网络

随着模型中低资源语言数量的增加,高资源语言翻译的质量开始出现下降。这种回归在多任务设置中得到认可,这是由于任务间的竞争和移转的单向性质(即从高资源到低资源)引起的。在研究更好的学习容量控制算法来减轻这种负向移转的同时,我们还通过增加模型参数的数量来提高高资源语言的翻译质量,从而扩大神经网络的代表性能力。


为了扩大神经网络的容量,可以进行许多设计的选择,包括增加更多的层或使隐藏的表示更宽。我们继续研究训练更深层次的翻译网络,利用 GPipe [4] 训练了 128 层 Transformers,参数超过了 60 亿。增加模型容量可以显著提高所有语言的性能,平均提高 5 个 BLEU 点。我们还研究了超深网络的其他特性,包括深度与宽度之间的权衡,可训练性挑战以及将 Transformer 扩展到超过 1500 层、840 亿个参数的设计选择。


虽然扩展深度是增加模型容量的一种方法,但探索可以利用问题的多任务性质的架构是一种非常合理的补充方式。通过使用稀疏门控混合专家层(sparsely-gated mixture of experts)来替换普通的前馈层,对 Transformer 架构进行修改,大幅提升了模型容量,使我们能够成功训练和传递 500 亿个参数,从而进一步提高了整体的翻译质量。



与 103 个单独的双语基线相比,当我们增加容量(参数数量)时,单个大规模多语言模型的翻译质量得到了改进。

使 M4 实用化

为每个单独的语言、域或语言移转任务,用极高的计算成本来训练大型模型是低效的。相反,我们提出了方法 [7],通过使用容量可调层使新模型适应特定的语言或域,而不改变原来的模型,从而使这些模型更加实用。

对未来的展望

到本世纪末,目前使用的 7000 种语言中,至少有一半将不复存在。多语言机器翻译真的能解决这一问题吗?我们将 M4 方法视为服务未来 1000 种语言的垫脚石;从这样的多语言模型开始,我们可以很容易地扩展到新的语言、域和下游任务,即使在秉性数据不可用的情况下也是如此。事实上,道路是曲折的,在通往通用机器翻译的道路上,许多有前途的解决方案似乎都是跨学科的。这使得多语言的神经机器翻译成为机器学习实践者和理论家的一个可信的测试平台,他们对探索多任务学习、元学习、深度网络的训练动态等等感兴趣。我们还有很长的路要走,路漫漫其修远兮,吾将上下而求索。


译注:到本世纪末将有一半语言不复存在,引自《剑桥濒危语言手册》(The Cambridge Handbook of Endangered Languages),Austin、Sallabank 编著。


原文链接:


Exploring Massively Multilingual, Massive Neural Machine Translation


2019-10-16 08:003332
用户头像

发布了 375 篇内容, 共 192.5 次阅读, 收获喜欢 947 次。

关注

评论

发布
暂无评论
发现更多内容

Java 线程基础

卢衍飞

Java

看透react源码之感受react的进化

goClient1992

React

华为云GaussDB(for Influx):让智能电网时序数据处理更高效

路过的憨憨

华为

Timers和进程在Client里的性能表现实战心得【Node.js】

恒山其若陋兮

前端 11月月更

JavaScript 基础

卢衍飞

JavaScript 学习 技术交流 基础

Java 反射

卢衍飞

Java

基于鸿蒙系统的commonEvent和限制与约束原子化服务代码简析

恒山其若陋兮

前端 11月月更

转化10亿GMV:螺丝钉也能变小马达

博文视点Broadview

深度分析React源码中的合成事件

goClient1992

React

聊一聊装饰者模式

Java 设计模式

性能测试知识科普(六):三大模型

老张

性能测试 数据模型 业务模型 流量模型

C++--- 类型萃取 ---is_void && is_null_pointer

桑榆

C++ STL 11月月更

Web3领域首个三消小游戏Matching Game,近30日交易量破800万U

股市老人

React-Hooks源码深度解读

goClient1992

React

C++中的代码重用

Maybe_fl

横向对比主流BI软件优势,企业要按需选择

巷子

【Python 基础学习】-运算符

度假的小鱼

11月月更 Python运算符 Python运算符优先级

Node.js在Buffers对象在数据报的表现交互在Modules的实战心得

恒山其若陋兮

前端 11月月更

SpringBoot整合EasyExcel超详细教学

陈老老老板

spring-boot 11月月更

极客时间运维进阶训练营第五周作业

9527

Java 注解与反射 基础

卢衍飞

Java

【web 开发基础】PHP 中的可变参数个数的函数 (34)

迷彩

函数 web开发基础 11月月更 可变个数参数的函数

China SAFe Day 2022中国规模化敏捷大会圆满落幕!

爱吃鱼的小雨

敏捷 safe 规模化敏捷 SAFeDay

SpringBoot整合Quartz

陈老老老板

定时任务 spring-boot 11月月更

MongoDB源码学习:Command的执行与注册

云里有只猫

mongodb 源码学习

Mysql基础超详细讲解

陈老老老板

MySQL 数据库 11月月更

瓴羊Quick BI,强劲数据引擎助力企业数据分析

夏日星河

ISV 的亚马逊云科技 marketplace ( 中国区) 之旅

亚马逊云科技 (Amazon Web Services)

亚马逊云科技 Tech 专栏 Marketplace

JavaWeb项目部署到腾讯云教学

陈老老老板

腾讯云 javaWeb java; 11月月更

Springboot超详细入门

陈老老老板

spring-boot 11月月更

打破语言壁垒:谷歌推M4翻译模型,训练参数多达500亿,支持103种语言_AI&大模型_Ankur Bapna_InfoQ精选文章