低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

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:271206
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 204.4 次阅读, 收获喜欢 1183 次。

关注

评论

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

数据库备份真的很重要!很重要!很重要!

xiezhr

oracle sql MySQL 运维 数据备份

所谓生产力

ES_her0

3月日更

Python 分通道读取图像数据,取经之路第 4 天

梦想橡皮擦

28天写作 3月日更

国内可用镜像站整理

小任

【LeetCode】逆波兰表达式求值Java题解

HQ数字卡

算法 LeetCode 28天写作 3月日更

寻找被遗忘的勇气(二十)

Changing Lin

3月日更

C++线程池ThreadPoolExecutor实现原理

Linux服务器开发

c++ 线程池 后端开发 Linux服务器开发 Linux后台开发

我在阿里实习做开源

apache/dubbo-go

微服务 程序人生 云原生 dubbo dubbogo

配置引起事故复盘

风翱

3月日更

10.5|PPT教程|内容页之图表呈现

青城

基于SpringCloud,支持安卓、IOS、包含前后端等等完整网约车项目

Java架构追梦

Java 架构 面试 SpringCloud 网约车项目

阿里p8私藏MyBatis笔记,从入门到精通,纵享源码细节

周老师

Java 编程 程序员 架构 面试

这份1307页Android面试全套真题解析,源码+原理+手写框架

欢喜学安卓

android 程序员 面试 移动开发

蚂蚁二面:MQ消费端遇到瓶颈除了横向扩容外还有其他解决办法?

中间件兴趣圈

面试 RocketMQ 消息中间件

[TcaplusDB知识库]TcaplusDB架构描述

TcaplusDB

数据库 nosql Tcaplus

Github连夜下架!阿里新产Java全栈面试突击小册太香了

Java王路飞

Java 程序员 架构 面试 分布式

这些面试题你会吗?6年菜鸟开发面试字节跳动安卓研发岗,复习指南

欢喜学安卓

android 程序员 面试 移动开发

一口气面了腾讯两个部门!

我是程序员小贱

3月日更

翻译:《实用的Python编程》07_01_Variable_arguments

codists

Python

永动金融EGG公链去中心化社交平台与通证EFTalk全球正式亮相

币圈那点事

区块链

2021年Java春招高级面试指南(1到5年Java面试者必备)

比伯

Java 编程 架构 面试 程序人生

区块链溯源追溯系统开发,区块链公共服务平台建设方案

WX13823153201

区块链溯源追溯系统开发

Github霸榜半年的阿里并发编程速成笔记究竟有什么魅力?

程序员小毕

Java 程序员 架构 面试 并发编程

苹果笔记本充不进电的解决方案

石云升

电脑故障 28天写作 3月日更

区块链资产追踪系统解决方案,追踪“它”的来龙去脉!

源中瑞-龙先生

软件开发 区块链应用 系统开发 #资产追踪

MySQL如何选择主键

架构精进之路

MySQL 3月日更

2月看的9部电影和1本书

金龟换酒

电影 书籍

打通Jira与钉钉和企业微信不再难

YY哥-杨勇

十步输出设计文档

Arvin

设计实践

老板要我开发一个简单的工作流引擎

Java小咖秀

架构 工作流 开发 工作流调度 工作流引擎

TCP 三次握手与四次挥手

insight

TCP 3月日更

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

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