FlowSeq、mBART、BERT-fused、mRASP、mRASP2...你都掌握了吗?一文总结机器翻译必备经典模型(3)

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: FlowSeq、mBART、BERT-fused、mRASP、mRASP2...你都掌握了吗?一文总结机器翻译必备经典模型

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 共 1模型实现资源。

项目 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一起训练模型,但对于从单语语料库中创建的句子对来说,由于源句和目标句完全相同,这有很大难度。因此,引入了一个两步掩码策略,以加强对双语和单语语料的模型训练。使用对齐的代码切换和掩码策略,用另一种语言的新词替换源词或短语,然后掩码相应的目标词。与以往的编码转换方法不同的是,该方法包括三个步骤,其中源词总是随机选择并直接替换。


  1. 对齐(Aligning)。利用多语言翻译词典来获得源X_m和目标Y_n之间的一组对齐词Λ={- - - ,((x_m)^i, (y_n)^j), - - - }。词对((x_m)^i, (y_n)^j) 表示X_m中的第i个词和Y_n中的第j个词是彼此的翻译。对于从单语语料库中创建的句子对,对齐的词对中的词是相同的。
  2. 代码切换替代(Code-Switching Replace,CSR)。给定一个词对((x_m)^i, (y_n)^j)∈Λ,首先在语言L_k中选择一个新词(xˆ_k)^i,用来替换源X_m中的(x_m)^i。
  3. 代码切换掩码(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 共 1 个模型实现资源。

项目 SOTA!平台项目详情页
CeMAT 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/cemat

前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。


网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。


移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。

相关文章
|
7月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图 REV1
Bert Pytorch 源码分析:五、模型架构简图 REV1
103 0
|
7月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图
Bert Pytorch 源码分析:五、模型架构简图
77 0
|
2月前
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
90 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
|
2月前
|
机器学习/深度学习 自然语言处理 知识图谱
|
2月前
|
机器学习/深度学习 自然语言处理 算法
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
208 0
|
3月前
|
搜索推荐 算法
模型小,还高效!港大最新推荐系统EasyRec:零样本文本推荐能力超越OpenAI、Bert
【9月更文挑战第21天】香港大学研究者开发了一种名为EasyRec的新推荐系统,利用语言模型的强大文本理解和生成能力,解决了传统推荐算法在零样本学习场景中的局限。EasyRec通过文本-行为对齐框架,结合对比学习和协同语言模型调优,提升了推荐准确性。实验表明,EasyRec在多个真实世界数据集上的表现优于现有模型,但其性能依赖高质量文本数据且计算复杂度较高。论文详见:http://arxiv.org/abs/2408.08821
89 7
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
|
4月前
|
机器学习/深度学习 存储 自然语言处理
【NLP-新闻文本分类】3 Bert模型的对抗训练
详细介绍了使用BERT模型进行新闻文本分类的过程,包括数据集预处理、使用预处理数据训练BERT语料库、加载语料库和词典后用原始数据训练BERT模型,以及模型测试。
82 1
|
4月前
|
算法 异构计算
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
171 9

热门文章

最新文章