快捷搜索:  汽车  科技

字节跳动的训练方法(7天8卡训练32种语言)

字节跳动的训练方法(7天8卡训练32种语言)mRASP 主要针对机器翻译任务而设计,它有三个应用优势:以 BERT 为代表的预训练范式几乎横扫了所有的文本理解任务,成为各种 NLP 任务的基石。然而,在文本生成尤其是机器翻译领域,虽然预训练模型也涌现出不少新算法,但是取得的效果仍有一定局限性,在资源丰富程度各异的场景和多语言扩展上依然面临着挑战。mRASP 解决的核心问题是:能否预训练出一个统一的翻译模型,在任何语对例如中文到印尼语中都能通过少量微调来达到好的翻译效果?赵元任(后排左二)与罗素(前排右一)本文将给大家介绍 EMNLP 2020 新鲜出炉的多语言翻译新范式 multilingual Random Aligned Substitution Pre-training (mRASP) [1],其核心思想是打造「机器翻译界的赵元任模型」,通过预训练技术再在具体语种上微调即可达到领先的翻译效果,其在 32 个语种上预训练出的统一

机器之心发布

机器之心编辑部

字节跳动发表在 EMNLP 2020 会议上的一项研究提出多语言翻译新范式——mRASP。

1920 年大哲学家罗素先生来中国各地访问,陪同翻译的是当时清华大学语言学家赵元任。赵元任极富语言天才,当时已经会说保定话、常州话、福州话、南京话等多地方言和英语。他在陪同罗素从上海到长沙的船上跟同船的经济学家杨瑞六学长沙话,船到长沙靠岸,赵元任已经能把罗素的演讲和俚语翻译成长沙话了。神经网络翻译能否成为「机器翻译界的赵元任」呢?即创造一个统一的具备多种语言能力的模型,在遇到新的语言时,临时少量学习即可达到很流利的语言水平。

字节跳动的训练方法(7天8卡训练32种语言)(1)

赵元任(后排左二)与罗素(前排右一)

本文将给大家介绍 EMNLP 2020 新鲜出炉的多语言翻译新范式 multilingual Random Aligned Substitution Pre-training (mRASP) [1],其核心思想是打造「机器翻译界的赵元任模型」,通过预训练技术再在具体语种上微调即可达到领先的翻译效果,其在 32 个语种上预训练出的统一模型在 47 个翻译测试集上取得了全面显著地提升。

字节跳动的训练方法(7天8卡训练32种语言)(2)

mRASP 不同于以往的翻译模式,树立了翻译的预训练和微调的成功路径。

以 BERT 为代表的预训练范式几乎横扫了所有的文本理解任务,成为各种 NLP 任务的基石。然而,在文本生成尤其是机器翻译领域,虽然预训练模型也涌现出不少新算法,但是取得的效果仍有一定局限性,在资源丰富程度各异的场景和多语言扩展上依然面临着挑战。mRASP 解决的核心问题是:能否预训练出一个统一的翻译模型,在任何语对例如中文到印尼语中都能通过少量微调来达到好的翻译效果?

mRASP 主要针对机器翻译任务而设计,它有三个应用优势:

打破了资源场景的限制,不论平行双语资源高低都能有所提升。在资源丰富的语言,比如标准英法翻译任务上已经有 4000 万平行语句训练情况下,使用 mRASP 依然能获得显著提升,达到了 44.3 的 BLEU 值;在低资源语言中,mRASP 的表现令人惊喜,极端情况下,只需要一万句训练数据,通过 10 分钟微调训练,就能得到一个还不错的翻译系统。

打破了语种数量的限制。任何语言的翻译,无论是孟加拉语到古吉拉特语还是印地语到菲利宾语,只要是地球上的语言,mRASP 都可以直接拿来微调,并且效果可期。

资源消耗低。相比于上百张卡的「军备竞赛」预训练玩法,mRASP 更平民,仅需要 8 卡训练一周就可以得到。简单来说,我们可以把 mRASP 理解为机器翻译领域的轻量级 BERT,只要是机器翻译任务,任何场景或者语言,拿来用用,都有可能出现小惊喜!

论文作者表示已经在字节跳动研发的火山翻译系统上使用了这项技术,得到了实际业务的检验。作者还公布了研究数据、代码和预训练模型,参见文末 GitHub 地址。

接下来我们从三个方面介绍分析 mRASP:1)机器翻译预训练的挑战;2)mRASP 的动机和方法;3)mRASP 的实际效果和分析。

机器翻译预训练的挑战

目前绝大多数 AI 任务都是建立在数据基础之上的统计学习,模型的性能很大程度上依赖于数据的质量和数量。利用大量较易获得的数据来预训练模型,在具体应用场景中再利用少量标注数据微调来实现实际场景可用的模型,已经成为 NLP 新的成功范式。例如 BERT [2] 在大规模纯文本上预训练后,在自然语言理解的 11 项任务上进行少量微调就能取得很好的成绩。不过,在多语言机器翻译中,通过预训练再微调的范式还未取得普遍的成功。以前的 NLP 预训练方式例如 BERT、GPT [5] 的训练目标与翻译任务关注的目标之间差距过大,不易直接使用。

mRASP 提出了全新的思路,利用多个语言已经积累的大量双语平行语料,合并起来联合训练一个统一的模型,之后再基于此微调,让预训练和微调目标尽可能接近,这样才能更大地发挥预训练模型的作用。

字节跳动的训练方法(7天8卡训练32种语言)(3)

上图对比分析了之前 NLP 预训练方法在机器翻译场景直接应用的限制。BERT 和 GPT 分别对应了 Transformer [6] 编码器部分和解码器部分的预训练,而机器翻译用的是序列生成模型。这种模型结构的不一致会导致翻译模型只有一部分参数被初始化,难以有效发挥预训练的作用,因此需要很多特殊的技巧才能得到性能提升 [10]。

针对序列模型,很快也有研究者提出了 MASS [7] 和 BART [8] 等框架,将预训练扩展到序列生成任务。它们使用 auto-encoder(自编码器)进行自学习,在很多下游生成任务上都取得了显著的效果。但是在机器翻译应用中依然存在两个重要的问题:第一是在资源丰富的语种(例如英德和英法)上没有观察到提升,第二没有办法扩展到多语种翻译任务。这种局限性,很大一部分原因在于自编码是相对简单的任务,很难学习到更深层次的表示,而机器翻译需要更复杂的语义转化,这种预训练目标和下游任务之间的差异导致模型很难最大程度地利用好预训练数据。

如何克服这两个问题,成了预训练模型在机器翻译领域应用的重要挑战。

mRASP 的动机和方法

对于语言学习者来说,存在一个非常有意思的现象。他们发现在学习了三四种语言之后,再学习一门新的语言速度就会加快。例如,如果有人分别学习德语和法语,可能各需要一年的时间,然而他先学习德语再去学法语,可能只需要一年零三个月,接下来再去学习西班牙语,速度可能会更快 [3]。对于程序语言其实也是类似的道理,学习 C 可能需要一年,接下来再学习 Java、Python 可能只需要一个月。

一个浅显的解释是,人类在多语言学习的过程中会自发总结语言中比较抽象的共性,重点学习新语言的特性。因此想要提升个人的语言学习能力,往往需要学习更多的语言,能够对语言的共性有更精确地把握,而不是拼命学习一种语言。同样的道理,对于机器翻译而言,能否把翻译能力迁移到不同语言上,使得不同语言之间的信息可以互相利用,就成了一个非常有趣的问题。

字节跳动的训练方法(7天8卡训练32种语言)(4)

mRASP 正是基于这样的考虑,设计了一个通用的预训练模型,学习语言之间转换的共性,接下来就可以更容易地迁移到新的翻译方向。就好像语言学习者一样,在学习了两种语言之后,学习第三种语言就变得很轻松了。

mRASP 的设计遵循了两个基本原则:第一,预训练的目标和机器翻译基本一致,需要学习语言的转换能力;第二,尽可能学习语言的通用表示、跨语言的句子或词语,如果语义接近则隐空间中的表示也应该接近。

字节跳动的训练方法(7天8卡训练32种语言)(5)

mRASP 方法,使用带语言标识的 Transformer 作为翻译网络框架

mRASP 遵循了通用的预训练 - 微调框架。在预训练阶段,不同于传统预训练模型大量堆叠无监督单语数据的方式,mRASP 另辟蹊径,采用了多语言平行数据作为预训练的主要目标,将几十种语言的平行数据放到同一个模型进行联合训练。

神经网络结构采用 Transformer,使用语言标识符 (Language token) 标识源语言和目标语言。为了保证不同语言的句子和词语能嵌入到同一个空间,同一个意思的句子无论中文还是英文都应该对应同一个向量表示。此外,该方法还引入了随机替换对齐技术 RAS,来制造更丰富的上下文。

中文句子「我 爱 北京 天安门」中的「爱」有一定概率被替换成「aime」(法语),「北京」也有一定概率被替换成「Pékin」(法语),于是原句就可能会变成「我 aime Pékin 天安门」。训练集中的一对平行句对可以变为两对(甚至三对、四对……):

1. 我 爱 北京 天安门 ==> I love Beijing Tiananmen Square

2. 我 aime Pékin 天安门 ==> I love Beijing Tiananmen Square

对模型而言,通过大量学习这样的平行语料,它会很自然地根据这种「人为制造」的「语境」学习到不同语言的同义词之间的对应关系。实际上,这种基于平行词典的随机替换方法,拉近了不同语言的同义句在空间上的分布。在上例中,「爱」和「aime」(法语)计算出来的词向量期望是尽可能接近的。

字节跳动的训练方法(7天8卡训练32种语言)(6)

而在微调阶段,只需要使用预训练阶段的参数进行初始化,之后采用和传统单向机器翻译相同的训练方法即可,因此使用 mRASP 并不需要掌握任何额外的技能。详细方法介绍参见论文 [1]。

mRASP 实际效果和分析

mRASP 使用 32 个语言的平行语料进行预训练,在英语到法语方向上仅使用 wmt14 的平行语料进行微调,就达到了不需要使用费时费力的海量单语 Back Translation 的最佳效果 (44.3 BLEU)。同时,应用到新的语言方向——荷兰语 (Nl) 到葡萄牙语 (Pt) 时,仅使用 1.2 万平行句对,微调了十分钟就可以获得一个可使用的 (BLEU 10 ) 模型,而同等平行句对量很难从头训练一个可使用的 MT 模型(BLEU 接近 0)。

简单概括,mRASP 具有如下几点优势:

模型简单易复现

mRASP 的预训练仅使用了共 1.1 亿对平行句对(由于同一对平行句对对两个方向都适用,所以一共是 2.2 亿个训练样本),词表大小仅 64k 个 bpe subword。相比于其它预训练方法动辄百亿数据几十层网络,mRASP 的训练难度更小,单机 8 卡不到一周即可在 32 个语言上完成预训练。当然在更多语言上的预训练模型也可以通过简单扩展获得。

通用性极强

mRASP 在大中小规模训练集上,相对于直接训练的单向机器翻译模型,效果都有一定的提升,甚至包括平行语料最多的语向英语到法语(提升了 1.1 BLEU)。即使对于预训练数据从来没有见过的语种荷兰语到葡萄牙语,它也取得了 10 BLEU 的显著收益。

这里摘录了部分有代表性的实验结果:

1)En-De 和 En-Fr Benchmark

下图对比了 mRASP 加微调在英德 (En-De) 和英法 (En-Fr) 上的效果和最近同期的其他几个跨语言预训练模型加微调的结果。可以看出,mRASP 的效果是有一定优势的,它在 En->De wmt 2016 测试集上达到了 30.3 (tokenized BLEU) 在 En->Fr wmt 2014 测试集上达到了 44.3 (tokenized BLEU)。其他模型中,CTNMT 使用了 BERT 预训练;MASS 使用了大规模单语数据;mBERT 是多语言 BERT 模型;mBART 是同期出现的另一种预训练方式,引入了海量多语言单语数据,训练时间达到 256 卡 20 天。

字节跳动的训练方法(7天8卡训练32种语言)(7)

字节跳动的训练方法(7天8卡训练32种语言)(8)

2)预训练阶段没见过的语言扩展

不包含在预训练阶段平行句对中的语向,被称作「Exotic Direction」。在 Exotic Direction 上是否有效果,决定了 mRASP 是否具有很好的扩展性和泛化能力。

论文中对 Exotic Direction 分为四种情况:

Exotic Pair:源语言和目标语言都经过了单独地预训练,但模型还没有见过它们组成的双语对;

Exotic Source:模型在预训练阶段只见过目标端语言,源端语言完全没见过;

Exotic Target:模型在预训练阶段只见过源端语言,目标端语言完全没见过;

Exotic Full:模型在预训练阶段完全没见过源端语言和目标端语言。

在这四种未见语对情况下训练机器翻译很难。其中难度最大的是最后一种,相当于要求只学习了中文和英语的人,读少量拉丁语和印地语的句子就可以做从拉丁语到印地语的翻译。

字节跳动的训练方法(7天8卡训练32种语言)(9)

值得关注的是,法中 (Fr-Zh) 两边都单独出现过,但是没有作为平行语对出现过,只使用了 20K 平行语料就可以达到 20 BLEU 值。

同时,对于两边语言都没在预训练阶段出现过的语对,比如荷兰语到葡萄牙语 (Nl-Pt),只使用 1.2 万句平行语料,经过大概 10 分钟的训练后,也可以达到 10 BLEU 值。

字节跳动的训练方法(7天8卡训练32种语言)(10)

3. 案例分析

为了更直观地理解 mRASP 的效果,作者在论文中也进行了案例分析。

法中 (Fr-Zh)

Exotic Pair,20k 平行句对

Direct 0.7 BLEU 远弱于 mRASP 25.8 BLEU

Direct 系统完全不能翻译,而 mRASP 系统翻译得很好。

字节跳动的训练方法(7天8卡训练32种语言)(11)

荷葡 (Nl-Pt)

Exotic Full,1.2 万平行句对

Direct 0 BLEU vs mRASP 14.1 BLEU

通过案例分析,我们发现 mRASP 得到的荷葡翻译模型的翻译效果虽然不能成功翻译每个细节,但是能抓住原文的一些关键信息。比如下面例子中的 (1) 日期 (2) 会议记录 会议的消息 (3) 分发 共享。

字节跳动的训练方法(7天8卡训练32种语言)(12)

英法 (En-Fr)

我们发现,mRASP 方法训练出来的模型比 Direct 方法的模型优秀的地方之一是:Direct 系统忽略了无实际意义单词(冠词、指示词等)的倾向,而 mRASP 保持了冠词和指示词的一致。

字节跳动的训练方法(7天8卡训练32种语言)(13)

英中 (En-Zh)

字节跳动的训练方法(7天8卡训练32种语言)(14)

4. 效果分析

mRASP 作为通用的预训练模型,它对各个 MT 下游任务的提升效果从何而来?

作者认为,其提升主要来源于两个方面:

mRASP 拉近了不同语言间同义词的向量表示;

mRASP 拉近了不同语言间同义句子的向量表示。

单词级别和句子级别的表示被拉近意味着,经过预训练阶段对大量语言的平行句对的处理和学习,mRASP 隐式地「掌握」了语言无关的表示,而这个表示是可以被迁移到任意语言上的,因此 mRASP 可以普遍地提高机器翻译下游任务的效果。

1)mRASP 拉近不同语言单词级别的向量表示

RAS 的引入使得不同语言的同义词之间共享相同的上下文,而在 NLP 中词义是由上下文 (context) 决定的,从而进一步拉近不同语言之间同义词的表示。

字节跳动的训练方法(7天8卡训练32种语言)(15)

字节跳动的训练方法(7天8卡训练32种语言)(16)

上图:w/o RAS,下图:w/ RAS

可以看出,加了 RAS 方法之后,不同语言之间的 embedding 分布被拉近了(角度变小)。

2)mRASP 拉近不同语言句子级别的向量表示

除了拉近同义词的向量表示之外,mRASP 还拉近了语义的向量表示。

使用编码器输出向量作为句子的空间表征(L2 normalized averaged-pooled encoder output),从 TED 平行测试集(经过过滤得到的 15-way 平行测试集,共 2284 条)中匹配到相似度(cosine similarity)最近的句子,计算 Top-1 准确度 (sentence retrieval accuracy)。

字节跳动的训练方法(7天8卡训练32种语言)(17)

图 1:mRASP 的准确度减去 mBART [9] 的准确度,注意荷兰语(Nl)在 mRASP 预训练数据中完全没出现过,其他方向上的准确度都大大超过了 mBART。

mRASP 检索的平均准确度达到 76%。

字节跳动的训练方法(7天8卡训练32种语言)(18)

图 2:mRASP 的准确度减去不使用 RAS 的 mRASP 方法的准确度。可以看出 mRASP 的 RAS 方法在预训练阶段没出现过的语言 (Nl) 上有明显收益。

字节跳动的训练方法(7天8卡训练32种语言)(19)

图 3:将句首的语种标识符(Language token)去掉以后,Nl 的准确度还可以进一步提升,不过其他语言上的准确度大幅下降。

可以看出,RAS 方法的确进一步拉近了语义向量表示,相同语义的句子在 mRASP 预训练之后会得到接近的表示。

总结

回到文初,语言天才赵元任先生一生掌握 33 种方言加 7 门外语,从北方的保定到南方福州,从长江上游到下游,从美国伯克利到法国巴黎,到了当地就能用当地口音说本地话。而建立统一的多语言跨领域的翻译模型正是机器翻译研究的终极目标之一。向语言天才赵元任看齐的 mRASP 建立了多语言预训练到微调到多个语种翻译模型的成功路径,这也会成为机器翻译的新范式。字节跳动已经将这项技术应用到火山翻译系统里,可以在下方所附网页中体验。

Github 地址:https://github.com/linzehui/mRASP

论文地址:https://arxiv.org/abs/2010.03142

火山翻译体验官网:http://translate.volcengine.cn/

参考文献

[1] Lin Zehui et al. "Pre-training Multilingual Neural Machine Translation by Leveraging Alignment Information." In the Conference on Empirical Methods in Natural Language Processing (2020).

[2] Devlin Jacob et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." NAACL-HLT (1) 2019: 4171-4186.

[3] Thomas Reed and Callie Mady. "Teaching for transfer: Insights from theory and practices in primary-level French-second-language classrooms." McGill Journal of Education/Revue des sciences de l'éducation de McGill 49.2 (2014): 399-416.

[4] Johnson Melvin et al. "Google’s multilingual neural machine translation system: Enabling zero-shot translation." Transactions of the Association for Computational Linguistics 5 (2017): 339-351.

[5] Radford Alec et al. "Improving language understanding by generative pre-training." (2018): 12.

[6] Vaswani Ashish et al. "Attention is all you need." Advances in neural information processing systems. 2017.

[7] Song Kaitao et al. "MASS: Masked Sequence to Sequence Pre-training for Language Generation." ICML. 2019.

[8] Lewis Mike et al. "Bart: Denoising sequence-to-sequence pre-training for natural language generation translation and comprehension." ACL 2020: 7871-7880

[9] Liu Yinhan et al. "Multilingual denoising pre-training for neural machine translation." TACL.2020

[10] Yang et al. "Towards Making the Most of BERT in Neural Machine Translation" AAAI.2020

猜您喜欢: