FlowSeq、mBART、BERT-fused、mRASP、mRASP2...你都掌握了吗?一文总结机器翻译必备经典模型(三)
机器之心专栏
本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
本文将分 3 期进行连载,共介绍 18 个在机器翻译任务上曾取得 SOTA 的经典模型。
第 1 期:RNNsearch、Multi-task、attention-model、Convolutional Encoder、Attention、Value-Network
第 2 期:Unsupervised NMT、PBSMT、coarse-to-fine、two-pass decoder translation、XLMs、MASS
第 3 期:FlowSeq、mBART、BERT-fused、mRASP、mRASP2、CeMAT
您正在阅读的是其中的第 1 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
第 1 期回顾:RNNsearch、Multi-task、attention-model…你都掌握了吗?一文总结机器翻译必备经典模型(一)
第 2 期回顾:Unsupervised NMT、PBSMT、coarse-to-fine…你都掌握了吗?一文总结机器翻译必备经典模型(二)
本期收录模型速览
模型 | SOTA!模型资源站收录情况 | 模型来源论文 |
---|---|---|
FlowSeq | https://sota.jiqizhixin.com/project/flowseq 收录实现数量:1 支持框架:PyTorch | FlowSeq: Non-Autoregressive Conditional Sequence Generation with Generative Flow |
mBART | https://sota.jiqizhixin.com/project/mbart-2 收录实现数量:2 支持框架:PyTorch | Multilingual Denoising Pre-training for Neural Machine Translation |
BERT-fused | https://sota.jiqizhixin.com/project/bert-fused 收录实现数量:3 支持框架:PyTorch、TensorFlow | Incorporating BERT into Neural Machine Translation |
mRASP | https://sota.jiqizhixin.com/project/mrasp 收录实现数量:1 | Pre-training Multilingual Neural Machine Translation by Leveraging Alignment Information |
mRASP2 | https://sota.jiqizhixin.com/project/mrasp2 收录实现数量:1 支持框架:PyTorch | Contrastive Learning for Many-to-many Multilingual Neural Machine Translation |
CeMAT | https://sota.jiqizhixin.com/project/cemat 收录实现数量:1 支持框架:TensorFlow | Universal Conditional Masked Language Pre-training for Neural Machine Translation |
机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。
一般而言,RBMT分析一段文字,通常会先建立目标语言中介的、象征性的表义字词。再根据中介的表义字词来决定使用人工国际语言(interlingual)化的机器翻译,或是使用转化原则法的机器翻译(transfer-based machine translation)。这些方法都必须拥有具备足够形态学的、语句学的以及语义学的资讯以及大量的字词规则所建构的辞汇。常见RBMT的难处在于无法给于适当且足够庞大的资讯,来满足不同领域或是不同法则的机器翻译法。
统计机器翻译(SMT)的首要任务是为语言的产生构造某种合理的统计模型,并在此统计模型基础上,定义要估计的模型参数,并设计参数估计算法。早期的基于词的统计机器翻译采用的是噪声信道模型,采用最大似然准则进行无监督训练,而近年来常用的基于短语的统计机器翻译则采用区分性训练方法,一般来说需要参考语料进行有监督训练。
2014年Dzmitry Bahdanau和Yoshua Bengio等学者提出了神经机器翻译。神经机器翻译(NMT)基于深度神经网络,为机器翻译提供了端到端的解决方案,在研究社区中受到了越来越多的关注,且近几年已被逐渐应用到了产业中。NMT 使用基于 RNN 的编码器-解码器框架对整个翻译过程建模,编码器是把源语言经过一系列的神经网络的变换之后,表示成一个高维向量。解码器负责把这个高维向量再重新解码(翻译)成目标语言。在训练过程中,它会最大化目标语句对给定源语句的似然度。在测试的时候,给定一个源语句 x,它会寻找目标语言中的一个语句 y,以最大化条件概率 P(y|x)。由于目标语句的可能数目是指数量级的,找到最优的 y 是 NP-hard 的。因此通常会使用束搜索(beam search)以找到合理的 y。束搜索是一种启发式搜索算法,会以从左向右的形式保留得分最高的部分序列扩展。特别是,它保存了一群候选的部分序列。在每个时间步长上,该算法都会通过添加新词的方法扩展每一个候选部分语句,然后保留由 NMT 模型评分最高的新候选语句。当达到最大解码深度或者所有的语句都完全生成的时候(即所有的语句都包含 EOS 符号后缀的时候),算法就会终止。
FlowSeq
大多数seq2seq模型是自回归的,它们通过对先前生成的标记进行调节来生成每个标记。相比之下,非自回归seq2seq模型一次性生成所有标记,通过在GPU等硬件上进行并行处理,从而提高效率。然而,直接同时对所有tokens的联合分布进行建模是非常具有挑战性的,即使模型的结构越来越复杂,其准确性也明显落后于自回归模型。本文提出了一个简单、高效的模型,用于使用潜在变量模型的非自回归序列生成。具体来说,引入生成流( generative flow ),这是一种使用神经网络对复杂分布进行建模的技术,并为序列潜在变量的条件密度建模设计了几层专门的流。
图1. FlowSeq的神经网络结构,包括编码器、解码器和后验网络,以及先验流的多尺度结构
首先概述FlowSeq的结构(如图1所示)和训练过程。与经典的seq2seq模型类似,在训练和测试时,FlowSeq首先读取整个输入序列x并为序列中的每个词计算一个向量,即源编码。
训练阶段,首先,从当前的后验q_φ(z|y, x)中抽取潜在代码z的样本。接下来,将Z和源编码一起送入解码器网络和先验,以计算P_θ(y|z, x)和 p_θ(z|x),以优化ELBO
测试阶段,通过执行生成过程,首先从先前的流程中对潜在代码z进行采样。对于一组潜在变量υ∈Υ,引入一个简单的先验分布p_Υ(υ)。然后,定义一个bijection function f:Z→Υ (g=f-1),据此可以定义一个关于变量z的生成过程
在这个步骤中,将编码器生成的源编码用作条件输入。然后,解码器接收采样的潜在编码z和源编码器的输出,从P_θ(y|z, x)生成目标序列y。
源编码器。
源编码器将源序列编码为隐性表征,在生成后验网络和先验网络的潜在变量以及与解码器的交叉注意力时,利用这些隐性表征计算注意力。任何标准的神经序列模型都可以作为其编码器,包括RNN或Transformer。
Posterior
潜在变量的生成。将潜在变量z表示为连续随机向量的序列z = {z_1, . . . , z_T }, 每个z_t是一个d_z维的向量,其中d_z是潜在空间的维度。后验分布q_φ(z|y, x)将每个z_t模拟为具有学习均值和方差的对角高斯:
零初始化。虽然对网络的大部分层进行了标准的随机初始化,但对产生μ和log σ^2值的最后一个线性变换再进行零初始化。这确保了后验分布是一个简单的正态分布,有助于更稳定地训练非常深的生成流。
Token Dropout。为了模拟生成过程中的不确定性,将潜在变量z引入模型。因此,z需要捕捉到y中的tokens之间的上下文相互依存关系。然而,有一个明显的局部最优,即后验网络生成的潜在向量z_t只编码相应的目标token y_t的信息,而解码器只是在每个步长t以z_t为输入生成 "正确 "的token。
解码器。
对于解码器,将潜在序列z作为输入,通过一个神经序列模型(如Transformer)的若干层运行,直接预测y中单独和独立的输出token。值得注意的是,与标准的seq2seq解码器不同,该解码器不进行causal masking以防止关注未来的token,从而使得模型完全非自回归。
Flow Architecture for Prior
整个流程架构基于Glow,将一系列的流程步骤结合在一个多尺度的架构中(见图2)。每个流程步骤包括三种类型的基本流程—actnorm、可逆多头线性( invertible multi-head linear )和耦合( coupling )。
图2. FlowSeq的神经结构,包括编码器、解码器和后验网络,以及先验流的多尺度结构
Predicting Target Sequence Length
在自回归seq2seq模型中,可以通过简单地预测一个特殊的EOS token来动态地确定序列的长度。然而,对于FlowSeq来说,要平行地预测整个序列,它需要提前知道其长度,以生成潜在序列z。具体做法是:不预测目标序列的绝对长度,而是使用一个范围为[-20, 20]的分类器来预测源序列和目标序列之间的长度差。这个范围内的数字是通过将源编码最大限度地集中到一个单一的向量中,通过线性层运行,并采取softmax来预测得到。这个分类器与模型的其他部分共同学习。
Decoding Process
在推理阶段,模型需要通过对所有可能的潜在变量进行边际化处理来识别具有最大条件概率的序列,这在实践中是难以实现的。文中提出了三种近似的解码算法来减少搜索空间:Argmax Decoding、 Noisy Parallel Decoding (NPD)、 Noisy Parallel Decoding (NPD)。
项目 | SOTA!平台项目详情页 |
---|---|
FlowSeq | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/flowseq |
mBART
mBART是一个seq2seq的去噪自动编码器,使用BART目标函数在多语言大规模单语语料库中进行预训练。mBART是第一个通过对多语言的完整文本去噪来预训练完整的seq2seq模型的方法,而以前的方法只关注编码器、解码器或重建部分文本。预训练一个完整的模型,可以直接为监督(句子级和文档级)和无监督的机器翻译进行微调,无需针对具体任务进行修改。
mBART使用一个标准的seq2seq Transformer架构,有12层编码器和12层解码器,模型维度为1024的16头(∼680M参数)。在编码器和解码器的顶部引入一个额外的规范化层,作用是在FP16精度下能够稳定训练。模型架构如图3。
图3. 多语言去噪预训练框架(左)和对下游MT任务的微调(右),使用句子互换和词跨度掩码两种方式作为注入的噪声。在编码器和解码器上都添加了一个特殊的语言ID token。所有任务都使用一个多语言预训练模型
训练数据涵盖K种语言。D = {D_1, ..., D_K},其中,每个D_i都是语言i的单语文本的集合。假设可以获得一个噪声函数g,它可以用于破坏文本,训练模型以预测给定g(X)的原始文本X。目标是如下式最大化L_θ:
在g中引入两种类型的噪声。首先,删除文本的跨度,用一个掩码标记代替。根据泊松分布(λ=3.5)随机抽出一个跨度长度来掩码每个实例中35%的单词。然后,对每个实例中的句子的顺序进行替换。解码器的输入是带有一个位置偏移的原始文本。利用一个语言id符号<LID>作为预测句子的初始标记。
对于一个批次的每个实例,取样一个语言id符号<LID>,并尽可能多地从<LID>的相应语料库中取样连续句子,直到它遇到文档边界或达到512的最大标记长度。实例中的句子由句末(</S>)token分开。然后,附加选定的<LID> token,以代表该实例结束。在 "多句子 "层面的预训练使我们能够同时进行句子和文件的翻译工作。
当前 SOTA!平台收录 mBART 共 2 个模型实现资源。
项目 | SOTA!平台项目详情页 |
---|---|
mBART | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/mbart-2 |
BERT-fused
首先使用BERT来提取输入序列的表征,然后通过注意力机制将表征与NMT模型的每一层编码器和解码器融合,即将BERT的表征输入所有层,而不是只作为输入嵌入。使用注意力机制控制每一层与表征的互动方式,并处理BERT模块和NMT模块可能使用不同的单词分割规则、进而导致不同的序列(即表征)长度的情况。与标准的NMT相比,除了BERT之外,Bert-fused模型还有两个额外的注意力模块,即BERT-encoder注意力和BERT-decoder注意力。首先,将输入序列转换为BERT处理的表征。然后,通过BERT-encoder注意力模块,每个NMT编码器层与从BERT获得的表征进行交互,并最终利用BERT和NMT编码器输出融合的表征。解码器的工作原理与此类似,它融合了BERT表征和NMT编码器的表征。
图4. BERT-fused模型结构。左图和右图分别代表BERT、编码器和解码器。虚线表示残差连接。H_B(红色部分)和(H_E)^L(绿色部分)分别表示BERT和编码器的最后一层的输出
图4给出了算法说明。BERT、编码器和解码器逐步处理输入x∈X。
第1步:给定任何输入x∈X,BERT首先将其编码为表征:H_B=BERT(x)。H_B是BERT中最后一层的输出。h_B,i∈H_B是x中第i个词条的表征。
第2步:令(H_E)^l表示编码器中第l层的潜在表征,令(H_E)^0表示序列x的字嵌入,对于任何i∈[l_x],将(H_E)^l中的第i个元素表示为(h_i)^l。对于第l层,l∈[L],则有:
进一步,利用 FFN(·) 处理 (˜h_i)^l,则第i层有:(H_E)^l= (FFN(˜h_1)^l, · · · , FFN(˜h_x)^l)。编码器最终输出 (H_E)^L。
第3步:令(S<t)_l表示解码器中第l层在时间步长t之前的隐状态。第l层则有:
其中,attn_S、attn_B和attn_E分别表示自注意力模型、BERT-解码器注意力模型和编码器-解码器注意力模型。上式经过层层迭代,最终可以得到(s_t)^L。(s_t)^L通过线性变换和softmax进行映射,得到第t个预测词yˆt。解码过程一直持续到遇到 end-of-sentence token。
在该框架中,BERT的输出作为一个外部序列表征,使用注意力模型将其纳入NMT模型。这是一种利用预训练模型的一般方法,与标记化方式无关。
本框架还提出了一个Drop-net以确保BERT和传统编码器输出的特征得到充分的利用。在每个训练迭代中,对于任何一层l,从[0,1]中均匀地抽取一个随机变量U^l,然后所有的 (˜h_i)^l按以下方式计算:
同样地,对于解码器的训练,利用Drop-net,则有
当前 SOTA!平台收录 BERT-fused 共 3 个模型实现资源。
项目 | SOTA!平台项目详情页 |
---|---|
BERT-fused | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/bert-fused |
mRASP
RASP是一种预训练通用多语言神经机器翻译模型的方法,mRASP的关键思路是随机对齐替换技术(random aligned substitution),它使具有相似含义的多语言的单词和短语在表征空间中更加接近。作者在32个语言对上联合训练一个mRASP模型,只用公共数据集。然后在下游语言对上对该模型进行微调,以获得专门的MT模型。
mRASP采用标准的Transformer-large架构,有6层的编码器和6层的解码器。模型维度为16个头的1,024。引入GeLU代替ReLU作为前馈网络的激活函数。还使用了学习的位置嵌入。具体架构见图5。
一个多语言神经机器翻译模型学习一个多对多的映射函数f,将一种语言翻译成另一种语言。定义L={L_1,. . . , L_M},其中,L是在预训练阶段涉及的语言的集合。D_i,j表示(Li, Lj )的平行数据集,E表示平行数据集的集合,其中,N为双语对的数目。然后,训练损失定义为:
图5. mRASP方法。"Tok "表示令牌嵌入,"Pos "表示位置嵌入。在预训练阶段,使用翻译损失同时训练多语言的平行句子对与它们的替换句子。随机替换源语言和目标语言中具有相同含义的词。在微调阶段,在下游语言对中进一步训练该模型,以获得专门的MT模型
此外,添加了两个人工语言标记来表示源语言和目标语言。例如,将下面这个En→Fr句子 "How are you? → Comment vas tu? "转换为 “ <en> How are you? → <fr>Comment vas tu?”
受constructive learning的启发,引入随机对齐替代(Random Aligned Substitution,RAS)来弥补不同语言之间的语义差距。给定一个平行句子(x_i, x_j),将(x_t)^i中的一个源词随机替换为不同的随机语言L_k,其中,t是单词索引。采用一种无监督的单词对齐方法MUSE,它可以将(x_t)^i翻译成语言L_k中的d_i,k(x_it),其中,d_i,k(-)是字典翻译函数。通过字典替换,原始双语对将构建一个编码转换的句子对(C(x_i), x_j)。由于采用了随机抽样,翻译集有可能出现在同一上下文中。由于单词的表征取决于上下文,不同语言中含义相似的单词可以共享相似的表征。
当前 SOTA!平台收录 mRASP 共 1 个模型实现资源。
项目 | SOTA!平台项目详情页 |
---|---|
mRASP | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/mrasp |
mRASP 2
现有的多语言机器翻译方法主要聚焦于以英语为中心的方向,而非英语方向仍然落后。这项工作的目的是建立一个多对多的翻译系统,重点强调非英语语言。该方法基于这样的假设:一个通用的跨语言表述能够带来更好的多语言翻译性能。mRASP2是一种获得统一的多语言翻译模型的训练方法。具体包括:a) 对比性学习方案,以缩小不同语言表述之间的差距。b) 在多个平行和单语数据上进行数据扩充,以进一步调整标记表示。对于以英语为中心的方向,mRASP2超过了现有的最佳统一模型,并在几十个WMT的翻译方向上取得了有竞争力的甚至比预训练和微调的模型mBART更好的性能。对于非英语方向,与多语种Transformer基线相比,mRASP2取得了平均10+BLEU的改进。mRASP2将平行语料和单语语料与对比学习统一起来。整体框架如图6所示。
图6. mRASP2采用一对平行的句子(或增强的伪对),用一个多语言的编码器-解码器计算正常的交叉熵损失。此外,计算对齐的一对(正样本)和随机选择的非对齐的一对(负样本)的表征的对比损失
一个多语言神经机器翻译模型学习一个多对多的映射函数f,将一种语言翻译成另一种语言。为了区分不同的语言,我们在每个句子前面添加一个额外的语言识别标记,对于源语言和目标语言都是如此。mRASP2的基本架构是最先进的Transformer。与以前的工作有些不同,mRASP2选择了一个更大的设置,用12层的编码器和12层的解码器来增加模型容量。模型的维度是1024的16个头。为了简化深度模型的训练,对单词嵌入采用了层规范化处理,对编码器和解码器采用了预规范化的残差连接(pre-norm residual connection)处理。因此,该多语言NMT基线要比Transformer-large模型强得多。
定义L = {L_1, .... L_M},其中,L是在训练阶段涉及的M种语言的集合。D_i,j表示(Li, Lj)的平行数据集,D表示所有的平行数据集。训练损失是交叉熵函数,定义为:
其中,x^i代表Li语言中的一个句子,θ是多语言转化器模型的参数。多语言转换器能够隐性地学习不同语言的共享表示。mRASP2引入了对比性损失,明确地将不同语言映射到一个共享的语义空间。对比学习的关键思想是最小化相似句子的表示差距,最大化不相关句子的表示差距。形式上,给定一个双语翻译对(x_i, x_j)∈D,对于正样本(x_i, x_j),从语言L_j中随机选择一个句子y_j来形成负样本(x_i, x_j)。对比学习的目标是使以下损失最小化:
其中,sim(-)计算不同句子的相似度。+和-分别表示正样本和负样本。R(s)表示任意句子的平均编码输出。τ是温度,它控制区分正负样本的难度。两个句子的相似度是用平均编码输出的余弦相似度来计算的。为了简化实施,负样本从同一训练批次中取样。通过最大化softmax项sim+(R(x_i), R(x_j)),对比损失使它们的语义表征投射在彼此之间。同时,softmax函数也将非匹配对sim-(R(x_i), R(y_j))最小化。在mRASP2的训练过程中,可以通过联合最小化对比训练损失和翻译损失来优化该模型。
文中还介绍了mRASP2 的数据增强方法,包括引入有噪声的平行双语和有噪声的单语数据。具体的数据增强方式如图7所示。
图7. 通过替换同义词词典中含义相同的词,对平行双语和单语数据进行对齐扩增。方式包括:创建一个伪平行的样本(左),创建一个伪自平行的样本(右)
项目 | SOTA!平台项目详情页 |
---|---|
mRASP2 | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/mrasp2 |
CeMAT
CeMAT是一个在多种语言的大规模双语和单语语料上预训练的条件掩码语言模型。具体来说,该模型由编码器上的MLM(masked language model)和解码器上的条件MLM( Conditional MLM,CMLM)联合训练,并采用多种语言的大规模单语和双语文本。此外,还介绍了两种简单而有效的方法来加强CeMAT,即对齐的代码切换和掩码(aligned code-switching & masking)以及动态双掩码(dynamic dual-masking)方法。
图8 CeMAT框架,它由一个编码器和一个双向解码器组成。
"Mono "表示单语,"Para "表示双语。在预训练期间(左图),增强多语言的原始单语和双语输入(用具有相同语义的新词或"[mask]"代替)并输入模型。最后,分别预测源语言和目标语言中的所有"[mask]"词。为了进行微调(右图),CeMAT为AT和NAT提供了统一的初始参数集
图9. 两步掩码细节
首先通过查询跨语言词典(标记为1.Aligned)从原始输入中获得对齐的对集Λ = {("dance", "tanzen"),...}(标记为→),然后从其中随机选择一个子集(标记为 "dance "→ "tanzen",红色),在图的左下方。对于子集中的每个元素,通过F_m((x_m)^i)选择一个新词,并分别执行CSR替换源片段("danse "标记为红色)和CSM替换目标片段("[mask]"标记为红色)。最后,进行DM处理,分别掩码源和目标的内容("[mask]"标记为浅蓝色)
CeMAT的完整架构如图25所示。训练数据由M个语言对D={D_1, D_2, ..., D_M}组成。D_k(m, n)是L_m和L_n语言的句子对的集合。在下面的描述中,将一个句子对表示为(X_m, Y_n)∈D_k(m,n),其中,X_m是语言L_m中的源文本,Y_n是语言L_n中的目标文本。对于单语语料库,通过复制句子创建伪双语文本,即X_m=Y_n。
CMLM预测被掩码的标记(y_n)^mask,给定一个源句子X_m和剩余的目标句子Y_n/(y_n)^mask,每个(y_n)^j∈(y_n)^mask的概率是独立计算的:
CMLM可以直接用于训练一个标准的Seq2Seq模型,该模型有一个双向编码器、一个单向解码器和一个交叉注意力。然而,由于掩码词之间的独立性,它并不局限于解码器一侧的自回归特征。因此,按照NAT的做法,使用CMLM来预训练一个具有双向解码器的Seq2Seq模型,如上图25所示。
尽管双语句子对可以直接用于与传统的CMLM一起训练模型,但对于从单语语料库中创建的句子对来说,由于源句和目标句完全相同,这有很大难度。因此,引入了一个两步掩码策略,以加强对双语和单语语料的模型训练。使用对齐的代码切换和掩码策略,用另一种语言的新词替换源词或短语,然后掩码相应的目标词。与以往的编码转换方法不同的是,该方法包括三个步骤,其中源词总是随机选择并直接替换。
对齐(Aligning)。利用多语言翻译词典来获得源X_m和目标Y_n之间的一组对齐词Λ={- - - ,((x_m)^i, (y_n)^j), - - - }。词对((x_m)^i, (y_n)^j) 表示X_m中的第i个词和Y_n中的第j个词是彼此的翻译。对于从单语语料库中创建的句子对,对齐的词对中的词是相同的。
代码切换替代(Code-Switching Replace,CSR)。给定一个词对((x_m)^i, (y_n)^j)∈Λ,首先在语言L_k中选择一个新词(xˆ_k)^i,用来替换源X_m中的(x_m)^i。
代码切换掩码(Code-Switching Masking,CSM)。如果对齐的一对((x_m)^i, (y_n)^j)中的源词(x_m)^i被(xˆ_k)^i取代,我们也通过用一个通用的掩码标记取代Y_n中的(y_n)^j来掩码。然后,训练CeMAT来预测它在双向解码器的输出层。
对于对齐和CSR,只使用MUSE提供的可用多语言翻译词典。图26显示了对齐后的代码切换和掩码的过程。根据给定的词典,"dance "和 "tanzen "被对齐,然后选择一个新的法语单词 "danse "来代替 "dance",而 "tanzen "则被"[mask]"代替(标记为红色)。在训练期间,句子中最多有15%的词会由CSR和CSM来完成。对于单语数据,将这个比例设定为30%。(CSR(Xm), CSM(Yn))表示对齐代码切换和掩码后的新句子对,将进一步动态地随机进行双重掩码处理。
受词典的限制,对齐的词对比例通常很小。事实上,在双语语料库中,平均只能为6%的标记匹配对齐的词对。为了进一步提高训练效率,对双语和单语数据都进行了动态双掩码(dual masking,DM)处理。
双语数据。首先从[0.2, 0.5]之间的均匀分布中抽取一个掩码比率υ,然后随机选择一个目标词子集,用"[mask]"代替。同样地,在源文本上选择一个子集,并在[0.1, 0.2]的范围内用一个比率μ对其进行掩码。图26显示了一个在双语数据上进行动态双掩码的例子。设置υ≥μ,以令双向解码器从编码器那里获得更多的信息。
单语数据。由于源语言和目标语言在掩码前是相同的,从[0.3, 0.4]的范围内取样υ =µ,并屏蔽双方相同的词子集。这将避免解码器直接复制源语言的标记。
遵循预先训练好的语言模型的做法,10%被选中的掩码词保持不变,10%用随机标记代替。被对齐的代码切换和掩码所取代的词将不会被选中,以防止跨语言信息的损失。(DM(CSR(Xm)), DM(CSM(Yn)))表示动态双掩码后的新句子对,使用该新句子对进行预训练。
在MLM和CMLM任务上联合训练编码器和解码器。给定句子对如下:
最终的训练目标函数表述如下:
项目 | SOTA!平台项目详情页 |
---|---|
CeMAT | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/cemat |
前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。
网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。
移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。
微信扫码关注该文公众号作者