写点什么

打破语言壁垒:谷歌推 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:003571
用户头像

发布了 376 篇内容, 共 207.3 次阅读, 收获喜欢 949 次。

关注

评论

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

Python 下载的9种方法,如何才能通过一线互联网公司面试

程序媛可鸥

Python 程序员 面试

Python实现Singleton模式的几种方式,正在准备面试

程序媛可鸥

Python 程序员 面试

详解《send》源码中NodeJs静态文件托管服务实现原理

CRMEB

Python数据类型——字典,一次哔哩哔哩面试经历

程序媛可鸥

Python 程序员 面试

百度一线工程师浅谈日新月异的云原生

百度Geek说

云原生 后端

复盘归因,提高交付质量的秘诀

老张

软件测试 交付质量 复盘归因

Python3通过函数名调用函数的几种场景实现,贼厉害

程序媛可鸥

Python 程序员 面试

Apache Flink 在斗鱼的应用与实践

Apache Flink

大数据 flink 开源 编程 实时计算

NFS服务器原理、搭建、配置,Python面试题选择题

程序媛可鸥

Python 程序员 面试

Python 金融量化 随机指标交易策略,闭关60天学懂NDK+Flutter

程序媛可鸥

Python 程序员 面试

Python两个内置函数locals 和globals,Python项目开发如何设计整体架构

程序媛可鸥

Python 程序员 面试

Python数据结构与算法(2,阿里一线架构师技术图谱

程序媛可鸥

程序员 面试

Python文字转换语音,让你的文字会「说话,Python面试项目包装

程序媛可鸥

Python 程序员 面试

Red Hat:疫情促使企业拥抱开源

BeeWorks

架构实战营模块六作业

刘洋

#架构实战营 「架构实战营」

python中strip(),lstrip(),rstrip()函数的使用讲解,Python开发知识点

程序媛可鸥

Python 程序员 面试

Python数据分析 之 制作酷炫的可视化大屏,特简单,我把所有Python框架整理成了PDF

程序媛可鸥

Python 程序员 面试

Python 中进程和线程的用法基本一样,跪了

程序媛可鸥

Python 程序员 面试

Python 蜻蜓fm有声书批量下载 支持账号登录 原创源码,斩获offer

程序媛可鸥

Python 程序员 面试

想了解 spring-cloud-kubernetes,那就先来实战一把官方demo

华为云开发者联盟

spring Kubernetes Spring Cloud Spring Boot

python DataFrame数据分组统计groupby()函数,值得推荐

程序媛可鸥

Python 程序员 面试

OBV指标交易策略(累积能量潮与移动能量潮,成交量多空比率净额及相关应用原则)

程序媛可鸥

Python 程序员 面试

Python爬取淘宝商品数据,价值千元的爬虫外包项目,最新美团点评Python团队面试题

程序媛可鸥

Python 程序员 面试

10个月,15亿,阿里云如何赋能企业打造交付和创新竞争力

阿里云云效

云计算 阿里云 云原生 研发 研发运维

Newton迭代法开方(Python),最详细的docker中安装并配置redis

程序媛可鸥

Python 程序员 面试

Python爬取高质量电脑壁纸,还是很好看的,面试总结

程序媛可鸥

Python 程序员 面试

Python爬取51job招聘信息,全网独家首发

程序媛可鸥

Python 程序员 面试

Python 中的文本分类,2021Python面试真题精选干货整理

程序媛可鸥

Python 程序员 面试

python中函数作用域,高级Python开发面试解答之线程篇

程序媛可鸥

Python 程序员 面试

Python爬虫入门教程15:音乐网站数据的爬取,我了解到的面试的一些小内幕

程序媛可鸥

Python 程序员 面试

Python 中的八个“无代码”特性,这原因我服了

程序媛可鸥

Python 程序员 面试

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