首页
学习
活动
专区
圈层
工具
发布

【Facebook AI && 含源码】有史以来第一个赢得WMT的多语言模型

如今,大多数MT系统使用双语模型,这通常需要为每个语言对和任务提供大量标记示例。...正文开始 1 Facebook/Meta的主要工作 为了构建通用翻译器,Meta认为 MT 领域应该从双语模型转向多语言翻译——其中一个模型可以同时翻译许多语言对,包括低资源(例如,冰岛语到英语...现在,Meta最新的研究成果却取得了突破性的进展:在 14 个语言翻译方向:英语往返捷克语、德语、豪萨语、冰岛语、日语、俄语和中文,有10中往返语言翻译,单个多语言模型的表现首次超过了经过专门训练的最佳双语模型...它使我们更接近于构建一个通用翻译器,无论存在多少翻译数据,都可以连接世界各地所有语言的人。...Meta使用了一种利用条件的计算方法,对于每个训练示例只激活模型的一个子集。

76210

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

即使使用了像 LASER 2.0这样的底层技术,为任意对100种不同语言(或4450种可能的语言对)挖掘大规模训练数据也是需要大量算力的。...它们优先使用了最高质量的数据和最大数据量的数据挖掘方向,并且避免了需要少量翻译的方向,如:冰岛语-尼泊尔语或者僧伽罗语-爪哇语。...例如,一个语言组包括在印度说的语言,如孟加拉语、印度语、马拉地语、尼泊尔语、泰米尔语和乌尔都语。研究人员系统地挖掘了每个群体中所有可能的语言对。...在上面的例子中,印度语、孟加拉语和泰米尔语将成为21印度-雅利安语支的桥梁语言。然后为这些桥接语言的所有可能的组合挖掘并行训练数据。...扩展模型的大小和特定语言的稀疏参数(32亿)的结合使我们能够创建一个更好的拥有150亿参数的模型。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    EMNLP 2018 | 结合通用和专用NMT的优势,CMU为NMT引入「语境参数生成器」

    选自arXiv 作者:Emmanouil Antonios Platanios等 机器之心编译 参与:白悦、刘晓坤 通用和专用 NMT 模型分别在相似语言对和罕见语言对的翻译中具有优势,但这也反映了各自的劣势...研究者使用了新的语境相关的参数生成器(CPG),它可以(a)泛化所有这些方法;(b)缓解上述通用和独立语言编码器-解码器系统的问题。...多语言:和之前相同,允许使用相同的单个模型进行多语言翻译。 半监督:可以使用单语数据。...我们展示了这种简单的修正如何使系统使用单语数据进行训练并实现 zero-shot 翻译。...百分比的并列行显示训练时使用多少部分(1%、10%、100%)的平行语料库;其余的仅用作单语数据。表中显示了 BLEU 和 Meteor 指标的结果。

    68510

    如何写出卓越代码?

    听听作者自己的解释: 了解了计算机如何表示数据,就了解了高级语言的数据类型是被如何转换到机器层次的;了解了CPU如何执行机器指令,就了解了高级语言应用程序中各种操作的代价;了解了内存性能,就了解了如何组织高级语言中的变量和其他数据...对照来看,恰好本书介绍了短指令和长指令在空间、性能与复杂度的取舍,而JVM则采用了折中的变长指令,允许操作码后跟零字节或多字节的操作数(operand)。...虽然使用的语言不同,编程态度却应该一以贯之。 然而,当我们写出动辄数百万行代码的应用系统时,是否真的思考过每条语句背后的代价?——问程序员,有多少人以写出卓越代码为己任?...又有多少人舍得花费宝贵的时间来深入理解计算机? 然则,“九尺之台起于垒土”,没有扎实的基础,开发的能力究竟能提升多高,编程的生涯究竟能走多远,我深表怀疑。...真的非常钦佩Randall Hyde多年如一日孜孜于《编程卓越之道》系列的写作,使之成为计算机图书中不朽的经典。 而作者并不满足已经取得的成就,推陈出新,出版了本书的第2版。

    57510

    首次赢得WMT机器翻译大赛,Meta证明单个多语言模型强于双语模型

    如今,大多数 MT 系统使用双语模型组,这通常需要为每个语言对和任务提供大量标记示例。不幸的是,这种方法对于训练数据很少的语言(例如冰岛语、豪萨语)来说失败了。...(例如,冰岛语到英语的翻译)和高资源语言对(例如,英语到德语的翻译)的翻译。...这一技术使研究者更接近于构建一个通用翻译器。...回译(back- translation)是单语数据最常见的技术之一,Meta 采用这一技术赢得了 2018 年和 2019 年 WMT 英语对德语新闻翻译任务。...Meta 使用了一种替代方案来利用条件式计算方法,该方法仅为每个训练示例激活模型的一个子集。

    73840

    不以英语为中心,百种语言互译,FB开源首个单一多语言MT模型

    多对多数据集和多语言模型示意图。 尽管如此,即使使用了像 LASER 2.0 这样先进的底层技术,为 100 种不同语言的任意对(或是 4450 种可能的语言对)挖掘大规模训练数据仍然需要大量的计算。...为了使这种数据挖掘规模更容易管理,该研究首先关注翻译请求最多的语言。因此,以最高质量的数据和最大数量的数据为优先挖掘方向。...举例而言,一个语系中将涵盖印度境内使用的孟加拉语、印地语、马拉地语、尼泊尔语、泰米尔语和乌尔都语等多种语言。研究者系统性地挖掘每个语系中所有可能的语言对。...如上述印度境内所使用的语言中,印地语、孟加拉语和泰米尔语是雅利安语的桥梁语言。然后,研究者挖掘这些桥梁语言所有可能组合的并行训练数据。...举例而言,如果一个模型在法语 - 英语和德语 - 瑞典语语料库中进行训练,则可以实现法语和瑞典语的零样本转译。

    70410

    Meta AI科学家专访 – 我们离世界上每个人都能实时理解每种语言还有多远?

    例如,我们已经开发了一个多语言模型的前一个版本,目前该模型有助于主动检测仇恨言论,即使是那些没有多少培训数据的语言,这对确保世界各地的人们在我们的平台上的安全非常重要。...最近在WMT效率任务中展示的改进表明,在单个CPU上每秒翻译数千个单词是可能的。虽然最新的WMT多语言模型仍然太大,无法部署在实时设置,但从构建这些模型的学习将在不久的将来改进生产MT系统。...在过去几十年里,以语际表征的概念为中心,通过努力扩大语言对的数量,可以找到一条有趣的线索。...使用跨语言表示,无论是符号的还是神经的,覆盖多对多语言对的二次问题被简化为线性:对于每种语言,只需要构建一个分析器(或编码器)和一个生成器(或解码器) ,因为这些输入和输出独立于语言的中央表示。...想想圣经的许多翻译版本,例如,可以从中提取爱沙尼亚语-尼泊尔语平行语料库,但每个圣经版本都是从第三种语言(可能是希腊语、拉丁语或英语)翻译的。

    65030

    《编程卓越之道》推荐序

    听听作者自己的解释: 了解了计算机如何表示数据,就了解了高级语言的数据类型是如何转换到机器层次的;了解了CPU如何执行机器指令,就了解了高级语言应用程序中各种操作的代价;了解了内存性能,就了解了如何组织高级语言中的变量和其他数据...对照来看,恰好本书介绍了短指令和长指令在空间、性能与复杂度的取舍,而JVM则采用了折中的变长指令,允许操作码后跟零字节或多字节的操作数(operand)。...虽然使用的语言不同,编程态度却应该一以贯之。然而,当我们写出动辄数百万行代码的应用系统时,是否真的思考过每条语句背后的代价?——问程序员,有多少人以写出卓越代码为己任?...又有多少人舍得花费宝贵时间来深入理解计算机?然则,“九尺之台起于垒土”,没有扎实的基础,开发的能力究竟能提升多高,编程的生涯究竟能走多远,我深表怀疑。...真的非常钦佩Randall Hyde多年如一日孜孜于《编程卓越之道》系列的写作,使之成为计算机图书中不朽的经典。而作者并不满足已经取得的成就,推陈出新,出版了本书的第二版。

    79920

    સુપ્રભાત!懂「印度方言」的多语言机翻模型挑战0资源翻译,论文已被ACL2021接收

    总体架构 左边的图(a)表示传统多语言机器翻译模型,灰色代表共享权重,这意味着,图上三个语言对(En-Zh,En-Fr和En-De)都完全共享同一套参数。...对每个语言对分别进行这样的操作(微调+剪枝),这样就能够获得每个语言对的子网络。...在WMT数据集上,作者选用了不同大小的Transformer,即Transformer-base和Transformer-big。...当LaSS在新语对的表现和双语模型持平时,在其他语言对的表现几乎不变,而基线模型则有明显下降的趋势。...例如,模型在训练阶段接触过 Fr→En 和 En→Zh 语向的翻译,但没有接触过 Fr→Zh 语向的翻译。

    70830

    【C语言标准库函数】取整与取余函数:ceil(), floor(), fmod(), 和 modf()

    在C语言的数值计算领域,取整与取余是最基础且高频的操作场景。...无论是金融计算中的金额校准、嵌入式开发中的数据精度控制,还是图形学中的坐标转换,都离不开ceil()、floor()、fmod()和modf()这四个标准库函数的支持。...典型使用场景: 资源分配计算:例如某任务需要每个线程处理8个数据,计算100个数据需要多少线程时,需用ceil(100.0 / 8.0)得到13个线程(若用整数除法100/8得到12,会导致4个数据未处理..."正确" : "存在精度误差"); return 0; } 编译与运行说明 由于使用了math.h中的函数,编译时需链接数学库(-lm参数),命令如下: gcc -o num_process...解析:modf()第二个参数是输出指针,需指向有效内存,NULL为无效地址,访问时触发操作系统内存保护机制。

    64510

    【源头活水】mBART:多语言翻译预训练模型

    对于无监督的情况,我们看到了一致的改进,并为关联性较低的语言对产生了第一个非生成结果(例如,在尼泊尔语-英语上的9.5个BLEU增益)。...你应该进行多少种语言的预训练?我们研究了什么时候预训练对包括目标语言对以外的语言是有帮助的,这些语言对将在微调期间使用。表4显示了四对X-En的性能。...mBART25和mBART02在25K步后均优于最佳基线系统。 需要多少双文本?表1和表2显示,对于低度和中度资源语言对,预训练一直在提高。...结果:如表5所示,我们发现英语-罗马尼亚语的预训练有很大的收益,即使在翻译一门关系遥远的未见语言(阿拉伯语)和两门未见语言(德语和荷兰语)时也是如此。...数据集:我们只考虑X→En翻译,从§3.1中选择了12种语言对的位数,涵盖了印度语(Ne、Hi、Si、Gu)、欧洲语言(Ro、It、Cs、Nl)、东亚语言(Zh、Ja、Ko)和阿拉伯语(Ar)。

    5K30

    Nebula3 SDK Nov 2009 更新内容

    (lock-step)的方式运行 新的“Jobs” 系统, 用于实现并行化工作(Win32 和Xbox360上的 CPU线程池 PS3上的 SPU) 父窗体支持, 现在能够以另一个窗口子窗口的形式进行渲染...Util::BitField 类允许多于32位的掩码操作 移除了老的string atom系统中的 Util::Atom, Util::Proxy 新方法Util::FixedArray...) 新的私有方法D3D9RenderDevice: SyncGPU() , 它在Present()中被调用, 用来防止GPU比CPU运行得过于超前(这是驱动内部的”优化”, 某些情况下会导致帧率卡顿)...不过对于商业项目, 请检查一下FMOD的许可!...骨骼评估(skeleton evaluation)已经“任务化” 对于PS3, 蒙皮运行在SPU上 整个character子系统已经优化(差不多重写了) InternalGraphics 使用子系统使渲染线程和游戏线程以锁定步进的方式运行

    59230

    内存顺序(Memory Order)问题(一)

    对于大部分开发者而言,在写单线程程序,或者基于锁(Mutex)和信号量(Semaphore)之类编程框架提供的同步元语写多线程程序的时候,并不需要关心内存顺序的问题。...内存模型 内存模型是编程语言对程序运行时内存访问模式的抽象,即内存被多个程序(进程和线程)共享,程序对内存的访问是无法预知的。...前面提到,内存模型在单线程编程和基于编程框架提供的同步元语实现多线程编程的情况下,对内存顺序问题进行屏蔽,怎么理解呢?...因为这里没有采用编程框架提供的同步元语来实现线程间同步,内存模型的抽象被打破,编译器和硬件架构无法保证语义一致。...可见,采用原子操作和内存顺序规约的线程同步通知机制,弱于锁和信号量等编程框架提供的同步元语实现的同步机制。 因此Release不是解锁操作,Acquire也不是加锁操作,这跟锁的互斥机制不一样。

    3K40

    0基础深入理解指针(1)

    ⽽CPU和内存之间也是有⼤量的数据交互的,所以,两者必须也⽤线连起来。不过,我们来关⼼⼀组线,叫做地址总线。...指针变量和地址 取地址操作符 理解了内存和地址的关系,我们再回到C语⾔,在C语⾔中创建变量其实就是向内存申请空间,⽐如: #include int main() { int a...C语⾔中其实也是⼀样的,我们只要拿到了地址(指针),就可以通过地址(指针)找到地址(指针指向的对象,这⾥必须学习⼀个操作符叫解引⽤操作符(*)。...举个例子,如果我们有两个指向整型变量的指针p1和p2,那么p2 - p1的结果就是p2和p1之间有多少个整型变量。...NULL 是C语⾔中定义的⼀个标识符常量,值是0,0也是地址,这个地址是⽆法使⽤的,读写该地址会报错。

    15010

    假如给你一次机会重新选择,计算机专业选C++ 还是Java?

    已经从事软件开发十几年,C++和java跟着做过好多项目,相对来讲跟C++的感情更加深刻些,毕竟被折腾的时间最长印象也最深刻,刚入行一年就跟着做C++项目,开始被泛型编程里面的各种规则折腾的够呛,发现和自己在学校学的完全不是一码事...后来用java做项目开发是C++技能成熟之后去做的,所以接手去做已经简单太多了,能深深体会到一种幸福优越感,毕竟java的语法细节和C++不可同日而语,但并不意味着java做起来就比较简单,java框架思想要求更高...,有个东西紧迫着学东西做项目也快,毕竟一个程序员需要紧跟时代的步伐,不能满足之前做了多少项目混了多少经验,java做起来相对C++有种很爽的感觉,起码不用考虑指针的东西,但整体来讲还是没有C++用起来有感觉...,所以技术生涯从事的第一个编程语言对于后续的影响还是挺大的, 技术后续掌握了多种编程语言,如同每个人对于初恋都会念念不忘是一个道理。...编程语言本质上讲就是一种工具,但选择不同的编程语言就意味着会选择不同的编程方向,c/c++主要是底层开发,java,python等属于高级语言开发方向和未来的编程方向的发展息息相关,其实就是重新选择一次编程方向

    1.8K10

    业界 | 微软提出新型通用神经机器翻译方法,挑战低资源语言翻译问题

    这一当前最优方法是一个神经机器翻译(NMT)系统,该系统使用了数千万新闻领域的平行句子作为训练数据。如此巨量的训练数据仅仅在少数语言对可以获得,也仅限于少数特定领域,例如新闻领域或官方记录。...此外,即使具有大量平行数据的语言,也并没有口语对话或者社交媒体文本等非正式风格的数据,这通常和正式的书面风格大有不同。对任何语言对而言,获取数百万平行句子的数据都是相当困难的。...在图的上半部分,该系统更多地利用了希腊语和捷克语的知识,从德语中利用的知识较少,几乎没有利用芬兰语知识。而在图的下半部分,意大利语是相关性更强的语言,被使用得更多。...第一种是多种语言翻译场景,该场景中模型仅使用每个语言对的 6000 个平行句子就学会了罗马尼亚语—英语和拉脱维亚语—英语的翻译。...在第三种情况下,研究者调整了一个经过标准阿拉伯语到英语翻译训练的系统,使之在完全不使用口语方言平行数据的情况下,就能适用于阿拉伯语口语方言(黎凡特语)。

    1.4K60

    入门 | 无需双语语料库的无监督式机器翻译

    难点在于某些语言对很难获取大量数据(来使用深度学习的力量)。 机器翻译的问题 如上所述,神经机器翻译最大的问题是需要双语语言对数据集。...对于英语、法语这类广泛使用的语言来说,这类数据比较容易获取,但是对于其他语言对来说就不一定了。如能获取语言对数据,则该问题就是一个监督式任务。 解决方案 论文作者指出如何将该任务转换成无监督式任务。...西班牙语小说。注意两部小说未必一样。 也就是说,作者发现如何学习两种语言之间共同潜在空间(latent space)。 自编码器简单回顾 自编码器是用于无监督任务的神经网络的一种宽泛类别。...因此,式 1.0 的作用是使网络最小化它的输出(给定带噪输入)和原始语句之间的差异。 如何添加噪声 图像处理可以通过在像素中添加浮点数来添加噪声,而在语言中添加噪声的方式是不同的。...作者使用了对抗训练。他们使用了另一个称为鉴别器的模型,以每个编码器的输出为输入,预测被编码的语句所属的语言。然后,编码器也要学习欺骗鉴别器。这在概念上和标准的 GAN 并没有什么区别。

    1.3K70

    编译型、解释型与脚本语言

    编译器在调试程序时提供不了多少帮助——有多少次在你的C语言代码中遇到一个“空指针异常”时,需要花费好几个小时来明确错误到底在代码中的什么位置。 可执行的编译型代码要比相同的解释型代码大许多。...另一个优势是解释器比编译器容易实现 解释型语言最大的优势之一是其平台独立性 解释型语言也可以保证高度的安全性——这是互联网应用迫切需要的 中间语言代码的大小比编译型可执行代码小很多 平台独立性,以及严密的安全性是使解释型语言成为适合互联网和...解释型应用占用更多的内存和CPU资源。这是由于,为了运行解释型语言编写的程序,相关的解释器必须首先运行。解释器是复杂的,智能的,大量消耗资源的程序并且它们会占用很多CPU周期和内存。...解释器也会做很多代码优化,运行时安全性检查;这些额外的步骤占用了更多的资源并进一步降低了应用的运行速度。...脚本语言对程序员提供了更高级的抽象。这一点明显表现在:在这种语言自身中,存在有高级的数据结构,如列表和字典结构,和对这种结构简单方便的嵌套和操作。这样可以创建非常成功的程序。

    2.4K20

    Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对,或成为NMT评估标准

    为了使并行语料库量大、覆盖主题广泛,Facebook在CCMatrix这项工作中,选择使用了随机抓取web中的数据作为并行语料的来源,他们每个月随机发送url,从而获得包含各种语言的网页快照(TB级)。...举例来说,希腊语/汉语对的语料数量为470万。 3、定性评估 为了评估这个数据集的质量,Schwenk等人还利用这个数据集进行了神经机器翻译系统的测试,并与几个公共测试集进行了对比。...2、在WMT’19 上评估 上图是在Newstest'18(NT'18)和Newtest'19(NT‘19)测试集上的BLEU分数。...4、总结 CCMatrix使NMT研究社区能够利用比以前仅几十种语言对更大的双语料数据集。这可以加速创建更有效的NMT模型,这些模型可以使用更多的语言,尤其是语料库相对有限的资源较少的模型。...由于规模庞大且使用了大量公共文本,或许CCMatrix将成为NMT领域中用于构建和评估系统的最常用资源之一。

    1.4K20

    Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对,或成为NMT评估标准

    为了使并行语料库量大、覆盖主题广泛,Facebook在CCMatrix这项工作中,选择使用了随机抓取web中的数据作为并行语料的来源,他们每个月随机发送url,从而获得包含各种语言的网页快照(TB级)。...举例来说,希腊语/汉语对的语料数量为470万。 3、定性评估 为了评估这个数据集的质量,Schwenk等人还利用这个数据集进行了神经机器翻译系统的测试,并与几个公共测试集进行了对比。...2、在WMT’19 上评估 上图是在Newstest'18(NT'18)和Newtest'19(NT‘19)测试集上的BLEU分数。...4、总结 CCMatrix使NMT研究社区能够利用比以前仅几十种语言对更大的双语料数据集。这可以加速创建更有效的NMT模型,这些模型可以使用更多的语言,尤其是语料库相对有限的资源较少的模型。...由于规模庞大且使用了大量公共文本,或许CCMatrix将成为NMT领域中用于构建和评估系统的最常用资源之一。

    48810
    领券