点击上方“AI遇见机器学习”,选择“星标”公众号

重磅干货,第一时间送达

来源:Facebook

编辑:QJP

【导读】Facebook 今日开源了一个多语种机器翻译模型「M2M-100」,这是首个不依赖英语数据就能翻译100种语言的模型,比如直接从僧伽罗语翻译成爪哇语。这种单一多语言模型与传统的双语模型性能相当,同时比以英语为中心的多语模型BLEU提高了10个点。

当把中文翻译成法文时,以前最好的多语种模型的方式是把中文翻译成英文,把英文翻译成法文,因为英语的训练数据是最多的。

而Facebook研究院的模型直接根据汉语到法语的数据进行训练,以便更好地保存语义。

在评估机器翻译广泛使用的 BLEU 指标上,它比以英语为中心的系统性能高出10个百分点。

M2M-100共接受了2200种「语言对」的训练,比以往以英语为中心的最优的多语言模型多了10倍。部署 M2M-100将提高数十亿人的翻译质量,尤其是对那些语言资源匮乏的人。

这个新模型是Facebook AI研究院多年来在机器翻译方面的基础工作的新里程碑。

Facebook还分享了如何为100种语言构建一个更加多样化的机器翻译训练数据集和模型的细节如模型、训练和评估的设置等,以帮助其他研究人员复制和推进多语言模型进一步发展。

典型的机器翻译系统需要为每种语言和每个任务建立单独的AI模型,但是这种方法在 Facebook 上并不能有效地扩展。

在 Facebook 上,人们可以通过数十亿条帖子以160多种语言发布内容。先进的多语言系统可以同时处理多种语言,但是依靠英语数据来弥补源语言和目标语言之间的差距会降低准确性。

因此Facebook需要一个多语种机器翻译(MMT)模型,可以翻译任何语言,以更好地服务于社区,因为其中近三分之二使用的语言不是英语。

研究人员使用一种全新的挖掘策略来创建翻译数据,建立了第一个真正的「多对多」数据集,包括100种语言的75亿个句子。

同时使用了几种缩放技术来建立一个包含150亿个参数的通用模型,该模型从相关语言中获取信息,并反映了更加多样化的语言和词法、句法等。

挖掘数以亿计的句子,寻找数以千计的语言方向

构建多对多 MMT 模型的最大障碍之一是为不涉及英语的任意翻译方向准备大量高质量的句子对(也称为平行句)。因为找到中文到英文,英文到法文的翻译比找到法文到中文的翻译要容易得多。

此外,随着我们支持的语言数量的增加,训练所需的数据量平方级增长。例如,如果我们需要每个方向的10M 句子对,那么我们需要挖掘10种语言的1B 句子对和100种语言的100B 句子对。

作为这项工作的一部分,Facebook创建了一个新的 LASER 2.0和改进的 fastText 语言标识,它提高了挖掘的质量,包括开源的训练和评估脚本。使用的所有的数据挖掘资源都利用了公开可用的数据,并且都是开源的。       

即使使用了像 LASER 2.0这样的底层技术,为任意对100种不同语言(或4450种可能的语言对)挖掘大规模训练数据也是需要大量算力的。

为了使这种规模的数据挖掘更易于处理,Facebook首先关注具有最多翻译请求的语言。

它们优先使用了最高质量的数据和最大数据量的数据挖掘方向,并且避免了需要少量翻译的方向,如:冰岛语-尼泊尔语或者僧伽罗语-爪哇语。

接下来,Facebook介绍了一种新的「bridge mining」策略,在这种策略中,根据语言分类、地理和文化相似性将语言分为14个「语言组」。

这样做是因为生活在使用同一种语言的国家的人们倾向于更经常地交流,并且会从高质量的翻译中受益。

例如,一个语言组包括在印度说的语言,如孟加拉语、印度语、马拉地语、尼泊尔语、泰米尔语和乌尔都语。研究人员系统地挖掘了每个群体中所有可能的语言对。

为了连接不同群体的语言,Facebook的人员确定了少量的「桥接语言」,它们通常是每个群体的一到三种主要语言。

在上面的例子中,印度语、孟加拉语和泰米尔语将成为21印度-雅利安语支的桥梁语言。然后为这些桥接语言的所有可能的组合挖掘并行训练数据。

使用这种技术,训练数据集最终得到了75亿个平行句子的数据,相当于2200个方向。       

为了补充低资源语言和低翻译质量的并行数据,Facebook还使用了流行的回译方法(back-translation)。

总的来说,通过「桥接策略和反向翻译」相结合,比单独挖掘数据的训练方式提高了1.7 BLEU。

同时研究人员还发现了零样本学习(zero-shot)的设置。

例如,如果一个模型使用法语-英语和德语-瑞典语训练,就可以在法语和瑞典语之间进行zero-shot 翻译。在多对多模型在非英语方向之间进行翻译的情况下,它比以英语为中心的多语言模式要好得多。

以高速度和高质量将机器翻译模型扩展到150亿参数

多语言翻译面临的一个挑战是,单一模型必须捕获多种不同语言和不同文字的信息。为了解决这个问题,扩展模型的容量并添加特定语言的参数有显著的作用。

扩展模型大小对于资源丰富的语言对特别有帮助,因为它们拥有最多的数据来训练更大的模型容量。

当扩展模型大小到120亿个参数时,所有语言方向的 BLEU 平均提高了1.2个点。扩展模型的大小和特定语言的稀疏参数(32亿)的结合使我们能够创建一个更好的拥有150亿参数的模型。   

为了增加模型的大小,Facebook还增加了 Transformer 网络中的层数以及每个层的宽度。结果发现,大型模型收敛速度快,训练数据效率高。

值得注意的是,这个多对多系统是首个利用 「Fairscale」的系统,Fairscale 是专门为支持Pipeline和Tensor并行化而设计的新 PyTorch 库。

作为这项工作的一部分,我们已经看到在预训练语言模型、微调和自监督方面取得了令人难以置信的快速进展。

多年来,AI研究人员一直致力于建立一个通用模型,能够理解不同任务中的所有语言。一个支持所有语言、方言的单一模型将更好地为更多的人服务,使翻译结果保持最新,并为数十亿人创造平等的新体验,这项工作使得更加接近这个目标。

项目地址:

https://github.com/pytorch/fairseq/tree/master/examples/m2m_100

欢迎关注我们,看通俗干货

150亿参数大杀器!Facebook开源机器翻译新模型,同传人员或失业相关推荐

  1. 150亿参数,谷歌开源了史上最大视觉模型V-MoE的全部代码

    来源:机器之心 本文共2400字,建议阅读5分钟 本文为你介绍谷歌开源史上最大视觉模型V-MoE的全部代码. 还记得谷歌大脑团队去年 6 月份发布的 43 页论文<Scaling Vision ...

  2. bucket sort sample sort 并行_IBM布局AI硬件大杀器:硬软件并行开发、开源模拟AI工具包...

    原标题:IBM布局AI硬件大杀器:硬软件并行开发.开源模拟AI工具包 智东西(公众号:zhidxcom) 编 | 子佩 智东西11月4日消息,为了解决AI对数据.能源和内存资源的巨大需求,IBM一直致 ...

  3. 并行化-你的高并发大杀器

    作者:咖啡拿铁,现就职于美团点评,后端研发 来自:公众号咖啡拿铁(ID:code_3092860495) 1.前言 想必热爱游戏的同学小时候,都幻想过要是自己要是能像鸣人那样会多重影分身之术,就能一边 ...

  4. [NewLife.XCode]反向工程(自动建表建库大杀器)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示 ...

  5. xcode修改时间后就要重新编译_[NewLife.XCode]反向工程(自动建表建库大杀器)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示 ...

  6. 复旦邱锡鹏新作:单机微调650亿参数大模型,业内人士:对大模型普及意义重大...

    鱼羊 发自 凹非寺 量子位 | 公众号 QbitAI 单台机器,就能微调全参数羊驼大模型! 这一令开源党狂喜的最新成果,来自复旦邱锡鹏团队. 具体而言,研究人员提出了名为LOMO(低内存优化)的新优化 ...

  7. 【AI周报】谷歌、Meta如何给大模型瘦身?;Meta开放1750亿参数大模型,媲美GPT-3

    01 行业大事件 谷歌.Meta如何给大模型瘦身?谷歌工程师亲述部署秘籍(免费书) 这是一本正在写作的新书,目前前四章已经放出了草稿. 过去几年,GPT-3 等几个大模型展示了大数据.大算力的力量,它 ...

  8. 专访唐杰:万亿参数大模型只是一个开始

    机器之心原创 作者:闻菲 智源悟道团队不仅会在「大」这条路上走下去,还将对构建「神经-符号结合模型」进行更深入和底层的探索. 图灵写于 1950 年的论述<计算机器与智能>被誉为人工智能的 ...

  9. 仅480块GPU搞出万亿参数大模型!达摩院3个月打造,出手即商用

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 不要6000张GPU!不要2000张TPU! 只要480,万亿参数大模型"抱回家"! 还没完,更惊艳的在后边. 同为万亿 ...

最新文章

  1. 使用FPM快速生成RPM包
  2. SAP PP COR1事务里下达工单,保存时报错:No data was found for the input values
  3. Leetcode 160. 相交链表 解题思路及C++实现
  4. java 单引号的字符串类型_Java程序以字符串形式显示双引号和单引号
  5. 主线程 唤醒_Java等待唤醒机制统计子线程运行时间的方式及其疑问
  6. Python技术分享:深入理解ThreadLocal变量的功能和使用
  7. 30行代码AC——例题6-3 矩阵链乘(Maxtrix Chain Multiplication, UVa 442)——解题报告
  8. mysql导入csvnull,MySQL Workbench从CSV导入NULL
  9. spring的环境配置(beans profile=xxx)
  10. Java多线程编程核心技术-多线程基础使用
  11. 7天4场直播,涵盖DBA职业发展必备软实力、Oracle和MySQL技术等
  12. 解决Python开发中,Pycharm中无法使用中文输入法问题
  13. Web开发入门型服务器使用心得
  14. [转载]github在线更改mysql表结构工具gh-ost
  15. EMUELEC游戏添加删除工具
  16. 阿里巴巴分布式调度引擎tbschedule实战二源码环境搭建
  17. matlab计算一元四次方程,一元四次方程解法
  18. authorization BASIC
  19. 小技巧-彻底删除U盘中的文件
  20. Java之HashTab基本用法

热门文章

  1. Delphi_01_控制台版HelloWorld
  2. Angularjs中文教程
  3. Git学习笔记一--创建版本库、添加文件、提交文件等
  4. PyQt5 简易计算器
  5. Play自动生成的项目目录简介
  6. win10恢复经典开始菜单_小编教你电脑如何升级win10
  7. pd.read_csv读取txt时整型变成浮点型问题解决
  8. 中文NER任务简析与深度算法模型总结和实战展示 转 作者原创的不错,很有水平,需要研读
  9. mysql下载地址与安装
  10. python中的pass占位语句