Facebook推出首个无需依赖英语即可翻译100种语言的AI模型

2020 年 10 月 27 日

Facebook推出首个无需依赖英语即可翻译100种语言的AI模型

Facebook AI将推出M2M-100,这是首个多语言机器翻译(MMT)模型,它可以在100种语言中的任意两种之间进行翻译,而无需依赖英语数据。M2M-100总共训练了2200个语言方向,比以前最好的以英语为中心的多语言模型多了10倍。部署M2M-100可以为数十亿人提高翻译质量,特别是那些使用低资源语言的人。


本文最初发布于 Facebook 官网,由 InfoQ 中文站翻译并分享。



  • Facebook AI将推出M2M-100,这是首个多语言机器翻译(MMT)模型,它可以在100种语言中的任意两种之间进行翻译,而无需依赖英语数据。它是开源的。

  • 在翻译时,比如中译法,大多数以英语为中心的多语言模型都进行中译英和英译法两种训练,因为英语训练数据使用最广泛。我们的模型直接在中译法数据上进行训练,以便更好地保留意义。在评价机器翻译时广泛使用的BLEU度量标准下,它比以英语为中心的系统高出10分。

  • M2M-100总共训练了2200个语言方向,比以前最好的以英语为中心的多语言模型多了10倍。部署M2M-100可以为数十亿人提供更高质量的翻译,特别是那些使用低资源语言的人。

  • 这一里程碑式成就得益于FacebookAI多年来在机器翻译领域开展的基础性工作。在本文中,我们将详细分享我们如何为100种语言构建更多样化的MMT训练数据集和模型。我们还发布了模型、训练和评估设置,以帮助其他研究人员再现和进一步增强多语言模型。


通过机器翻译(MT)打破语言障碍,是将人们联系在一起、提供关于COVID-19的权威信息、让人们远离有害内容的最重要的方式之一。如今,得益于我们在低资源语言机器翻译方面以及翻译质量评估方面的最新进展,我们平均每天在 Facebook 新闻订阅中处理 200 亿次翻译。


传统的 MT 系统需要为每种语言和每种任务构建单独的人工智能模型,但在 Facebook,这种方法无法有效地扩展。在 Facebook 上,人们在数十亿个帖子中发布的内容使用了超过 160 种语言。增强型多语言系统可以同时处理多种语言,但依赖英语数据来弥补源语言和目标语言之间的差距,因而在准确性上有所损失。我们需要一种多语言机器翻译(MMT)模式,可以翻译任何语言,以便更好地服务于我们的社区,在这个社区中,近三分之二的人使用英语以外的语言。


经过 Facebook 多年 MT 研究的积累,我们很高兴地宣布了一个重要的里程碑:第一个可以在任何方向上直接翻译 100*100 种语言的单一大型 MMT 模型,而且不依赖仅以英语为中心的数据。我们的单一多语言模型的性能和传统的双语模型一样好,并且 BLEU 得分比以英语为中心的多语言模型提高了 10 分。


通过使用新的挖掘策略来创建翻译数据,我们构建了第一个真正的“多对多”数据集,包含 100 种语言的 75 亿个句子。我们使用多种扩展技术构建了一个具有 150 亿个参数的通用模型,它从相关语言中获取信息,反映出更多样化的语言和词法。我们正在开源这项工作。(视频


从数以亿计的句子中挖掘成千上万的语言方向


构建多对多 MMT 模型的最大障碍之一是为任意不涉及英语的翻译方向管理大量高质量的句对(也称为平行句)。从中文到英文、从英文到法文的翻译要比从法文到中文容易得多。更重要的是,训练所需的数据量会随着我们所支持的语言数量的增加而呈平方增长。例如,如果我们每个方向需要 10M 对句子,那么我们需要挖掘 10 种语言的 1B 对句子,100 种语言就是 100B 对句子。


我们接受了这个艰巨的挑战,即构建迄今为止最多样化的多对多 MMT 数据集:跨 100 种语言的 75 亿对句子。这可以通过组合多年来一直在发展的、互补的数据挖掘资源来实现,包括ccAlignedccMatrixLASER。作为这项工作的一部分,我们创建了一个新的 LASER 2.0,并改进了 fastText 语言识别,它提高了挖掘质量,并加入了开源训练和评估脚本。我们所有的数据挖掘资源都利用了公开可用的数据,并且都是开源的。


近年来,Facebook AI 在 MT 领域开展了许多涉及突破性模型、数据挖掘资源和优化技术的开创性工作,这次新推出的多对多多语言模型就是这些工作的一个巅峰。这个时间表重点介绍了一些值得注意的成就。此外,我们通过挖掘 ccNET 创建了大量的训练数据集,ccNET 建立在fastText(我们在处理单词表示方面所做的开创性工作)、CCMatrix LASER 库(将句子嵌入到多语言嵌入空间)和 CCAligned(基于 URL 匹配对齐文档的方法)之上。作为这项工作的一部分,我们创建了 LASER 2.0,改进了以前的结果。


尽管如此,即使使用像 LASER 2.0 这样的高级底层技术,为 100 种不同语言的任意组合(或 4450 种可能的语言对)挖掘大规模训练数据也需要高度密集的计算。为了使这种规模的挖掘更易于管理,我们首先关注翻译需求最多的语言。因此,我们以数据质量最高和数据量最大的方向作为优先挖掘方向。我们避开了统计上很少需要翻译的方向,比如冰岛语到尼泊尔语或僧伽罗语到爪哇语。


接下来,我们引入了一种新的桥梁挖掘策略,在该策略中,我们根据语言类别、地理和文化相似性将语言分组为 14 个语言组。生活在同语系国家的人们往往更经常交流,并将受益于高质量的翻译。例如,一个语言组包括在印度使用的语言,如孟加拉语、印地语、马拉地语、尼泊尔语、泰米尔语和乌尔都语。我们系统地挖掘每一组中所有可能的语言对。


为了连接不同组的语言,我们确定了少量的桥梁语言,通常是每个语言组中的一到三种主要语言。在上面的例子中,印地语、孟加拉语和泰米尔语是印度雅利安语的桥梁语言。然后,我们为这些桥梁语言的所有可能组合挖掘并行训练数据。使用这种技术,我们的训练数据集最终包含 75 亿个平行句的数据,对应 2200 个方向。由于挖掘的数据可以用于训练给定语言对的两个方向(例如,en->fr 和 fr->en),我们的挖掘策略可以帮助我们有效地稀疏挖掘,以便最好地在一个模型中覆盖所有的 100×100 个方向(总共 9900)。


为了补充低资源、低翻译质量的语言的并行数据,我们采用了流行的反向翻译方法,这种方法帮助我们在2018年和2019年的 WMT 国际机器翻译比赛中获得了第一名。例如,如果我们的目标是训练一个中法翻译模型,我们首先要训练一个法中翻译模型,然后把所有的法语单语数据翻译成合成的、反向翻译的中文。我们发现,当将数亿个单语句子翻译成并行数据集时,这种方法在规模很大时特别有效。在我们的研究环境中,我们使用反向翻译来补充我们已经挖掘的训练方向,将合成的反向翻译数据加入到挖掘的并行数据中。我们使用反向翻译来为以前的无监督方向创建数据。


总的来说,在 100 个反向翻译方向上,桥梁策略和反向翻译数据相结合比单独使用挖掘数据的训练 BLEU 分值平均提高了 1.7。有了更健壮、高效、高质量的训练集,我们就有了构建和扩展多对多模型的坚实基础。


我们还在零样本设置下发现了令人印象深刻的结果,这种情况下的语言对没有训练数据。例如,如果一个模型在法语-英语数据集和德语-瑞典语数据集上进行了训练,我们就可以在法语和瑞典语之间进行零样本翻译。在必须实现非英语方向之间的零样本翻译的情况下,我们的多对多模型比以英语为中心的多语言模型要好得多。


将 MMT 模型扩展到 150 亿个参数,并且速度快、质量高


多语言翻译中的一个挑战是,单一模型必须从许多不同的语言和文本中捕获信息。为了解决这个问题,我们看到,扩展模型容量和添加特定于语言的参数有明显的好处。扩展模型大小对于高资源语言对特别有帮助,因为它们有最多的数据可以用来训练额外的模型容量。最终,我们看到,当模型大小密集扩展到 120 亿个参数时,在所有语言方向上的 BLEU 分值平均提高了 1.2,此后进一步扩展,效果就开始下降了。密集扩展和特定于语言的稀疏参数(32 亿)相组合使我们能够创建一个拥有 150 亿参数的更好的模型。



我们将我们的模型与双语基线和以英语为中心的多语言模型进行比较。我们从 12 亿参数基线开始,其中包含 24 个编码器层和 24 个解码器层,将以英语为中心的模型与我们的 M2M-100 模型进行比较。接下来,如果我们将 120 亿个参数与 12 亿个参数进行比较,我们看到 BLEU 分值提高了 1.2。


为了增加模型的大小,我们增加了 Transformer 网络的层数以及每一层的宽度。我们发现,大型模型收敛速度快,训练时的数据效率高。值得注意的是,这个多对多系统是第一个利用Fairscale的系统,这个新的 PyTorch 库是专门为支持管道和张量并行而设计的。我们构建了这个通用的基础设施,通过将模型并行化到 Fairscale,以适应无法在单个 GPU 上运行的大型模型。为了训练大规模模型,我们以ZeRO优化器层内模型并行管道模型并行为基础进行了构建。


但仅仅将模型扩展到数十亿个参数是不够的。为了未来能够在生产中应用这种模型,我们需要通过高速训练来尽可能高效地扩展模型。例如,为了生成翻译,现有的许多工作都使用多模型集成,即对多个模型进行训练,并将其应用于同一源句。为了降低训练多个模型的复杂性和所需的计算量,我们研究了多源自集成技术,它可以将同一源句翻译成多种语言以提高翻译质量。此外,我们的工作是以LayerDrop深度自适应为基础进行构建,共同训练一个具有公共主干和不同语言特定参数集的模型。这种方法非常适合多对多模型,因为它提供了一种自然的方法,按语言对或语言族划分模型的各个部分。通过将模型容量的密集扩展与特定于语言的参数(总共 3B)相结合,我们提供了大型模型的好处,以及学习不同语言专用层的能力。


为所有人构建多语言模型之路


多年来,人工智能研究人员一直致力于构建一个单一的通用模型,该模型可以理解不同任务中的所有语言。一个支持所有语言、方言和模式的单一模型将帮助我们更好地为更多人服务,保持翻译及时更新,为数十亿人创造同等的新体验。这项工作使我们距离这个目标更近了。


作为这项工作的一部分,我们已经在预训练语言模型、调优和自监督技术方面看到了令人难以置信的快速进步。这种公共研究可以进一步改善我们系统使用未标记数据理解低资源语言文本的方式。例如,XLM-R是我们强大的多语言模型,它可以从一种语言的数据中学习,然后在 100 种语言中执行一项任务。mBART是为多语言 BART 任务预训练完整模型的最早的方法之一。最近,我们新开发的自监督方法 CRISS,使用来自许多不同语言的未标记数据来挖掘不同语言之间的并行句,并以迭代的方式训练新的、更好的多语言模型。


我们将继续通过整合这些前沿研究来改进我们的模型,认真探索部署 MT 系统的方法,并创建更专业的计算架构来将其投入生产应用。


查看英文原文:


https://about.fb.com/news/2020/10/first-multilingual-machine-translation-model/


2020 年 10 月 27 日 14:271043
用户头像
陈思 InfoQ编辑

发布了 530 篇内容, 共 183.6 次阅读, 收获喜欢 1006 次。

关注

评论

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

k8s 上运行我们的 springboot 服务之——大文件读写

柠檬

Java nio

Vol.10 Java 25岁了!

Lanpeng2020

Java jdk 编程语言 Java25周年

Android 通过opencv实现人脸识别,追踪

sar

android OpenCV 人脸识别

从位图到布隆过滤器

王坤祥

位图 布隆过滤器

2020智源-京东多模态对话挑战赛开战 产学研联合推动AI技术发展

DT极客

Nginx 基础原理和命令行的真相

子杨

nginx 运维

阿里巴巴为什么让初始化集合时必须指定大小?

王磊

Java 性能

神经网络中为什么不能将权重初始值设置为一样的值

王坤祥

神经网络 机器学习

幂等问题及解决方案

Joker

幂等 解决方案

Mysql常用删除方式比较

云也退

MySQL

备案问题汇总

云也退

网站 备案

产业区块链:产业是本质,区块链是工具

CECBC区块链专委会

新基建 CECBC 区块链技术 中国电子

Spring源码-BeanFactory创建Bean

云淡风轻

spring 源码

卧槽,接到一个阎王的需求

码农神说

程序员

「首度揭秘」大规模HPC生产环境 IO 特征

焱融科技

sds io 高性能 存储 焱融科技

10分钟了解Flink

代码诗人

Nginx 入门及命令行操作

子杨

nginx 运维

我们可能都误解了什么是情商

七镜花园-董一凡

情绪

图片与标题的Ken Burns动效

寇云

CSS css3

只需CSS的下拉式导航菜单

寇云

CSS css3

Weex开发:页面跳转以及Android端多应用选择窗口的处理

brave heart

android Vue 大前端 跨平台 Weex

你有信息焦虑症吗?

Neco.W

创业 学习方法 知识体系

kudmp介绍和安装

唯爱

基于 Markdown 的中文文档排版规范

Murphy

markdown 排版规范 GitHub GFM 物联网学前班

ARTS_20200529

凌轩

Java ARTS 打卡计划

为什么你要学习 Go?

司徒公子

go golang 编程语言 谷歌Google

Django ListView DetailView等基于类的视图如何添加装饰器?

Young先生

Python django LiveView 装饰器

奈学干货分享:分布式CAP实践分析

奈学教育

分布式

工厂模式(三)泛型工厂的概念以及示例代码

LSJ

Cassandra可调一致性的使用及原理

老任物联网杂谈

大数据 分布式 Cassandra 可调一致性

终于找到了一篇文章!通俗地讲解计算机工作原理

图灵社区

cpu 存储器 编译器 计算机工作原理

Facebook推出首个无需依赖英语即可翻译100种语言的AI模型-InfoQ