【mT5模型】mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer

news2024/11/15 20:35:15

【mT5模型】mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer

  • 论文信息
      • 阅读评价
  • Abstract
  • Introduction
  • Background on T5 and C4
  • mC4 and mT5
    • mC4
    • mT5
    • Comparison to related models
  • Experiments
  • Zero-shot generation
    • Illegal predictions
    • Preventing accidental translation
  • Conclusion

论文信息

名称内容
论文标题mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer
论文地址https://aclanthology.org/2021.naacl-main.41/
发表时间2021-03-11
研究领域NLP, mT5, LLM, multi-language
提出模型mT5

阅读评价

  mT5是在T5基础上的多语言版本,现在终于可以炼自己的翻译模型了!并且从这篇论文中也能学到一些多语言数据集采样的tirck!


  以下是对论文每个部分的简单介绍。

Abstract

  本文介绍了mT5模型是如何在T5的基础上训练的。还着重介绍了mT5模型输出不合法的现象与解决方案。

Introduction

  回顾T5模型在迁移学习领域卓越效果,提出T5的缺点是数据集几乎全是英文,没法支持多语言。

  于是论文介绍了2种解决多语言的思路:

  1、一种方法是同时发布数种不同语言的模型。如BERT模型,有英文版(bert-base)、中文版(bert-chinese)、日文版(bert-japanese)等等。

  2、另一种方法是直接训练多语言模型。如mBERT模型,直接在不同语言数据集上训练,这样词表会比较大。

  mT5模型选择的是第2种方法。mT5在T5模型的结构基础上,使用了C4数据集的多语言变体mC4。

Background on T5 and C4

  对T5模型和C4数据集的简单回顾。

【注】这里篇幅较少,建议去看原论文。
——————————————————
T5原论文:https://dl.acm.org/doi/10.5555/3455716.3455856
——————————————————
T5论文阅读博客:【T5模型】Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer

mC4 and mT5

  mT5的目标是创建一个尽可能遵循T5结构的大型多语言模型。为此开发了一个涵盖101种语言的C4预训练数据集的扩展版本mC4,并对T5进行了更改以更好地适应多语言环境。

mC4

  只有英语的C4数据集将会丢弃任何langdetect判定为至少99%可能性的非英语页面。

【注】Langdetect是用来识别文本语种的库,通常使用 n-gram 模型来识别文本的语言。

  在处理mC4数据集时,作者采用了cld3工具来识别100多种语言,并利用了Common Crawl至今发布的所有71个月度网络抓取数据。

【注】CLD 是另一种语言检测工具,它也是由 Google 开发的。CLD 可以快速地识别文本的语言,并且通常比其他语言检测工具更准确。它可以检测多种语言,包括一些稀有语言。

  最后,作者使用cld3检测每个页面的主要语言,并删除置信度低于70%的页面。然后按语言对剩余的页面进行分组,并在语料库中收集所有具有10000或更多页面的语言,之后产生cld3定义的107种“语言”的文本。但是,其中六个只是同一种口语的文字变体。

在这里插入图片描述

图1 mC4语言构成

  如图1所示,mC4的多语言构成相当复杂, α \alpha α是介于0-1之间的采样超参数,下面会介绍。

mT5

  首先,mT5在T5模型的架构不变的基础上,做出了如下改进:

  1、使用了GeGLU代替Transformer前馈网络部分里面的ReLU或者GELU激活函数。

【注】他们还专门放出了一篇补充论文,介绍GEGLU:GLU Variants Improve Transformer。

  2、缩放dmodel和dff,而不仅仅是dff。
  3、在无监督预训练时,不用dropout。
  4、预训练多语言模型的一个主要因素是如何从每种语言中采样数据。最终,这种选择是一个零和游戏:如果低资源语言的采样过于频繁,模型可能会过度拟合;如果高资源语言没有得到足够的训练,模型就会不适应。因此通过一个采样公式来确定预训练时对每种语言的采用概率:

p ( L ) ∝ ∣ L ∣ α p(L) ∝ |L|^\alpha p(L)Lα

  其中, α \alpha α是介于0-1之间的超参数, ∣ L ∣ |L| L是每种语言的样本数,这个公式就相对于开根号,大的样本数会变得更小,小的样本数变小的幅度会稍微好一些。

  mBERT的α = 0.7、XLM-R的α = 0.3和MMNMT的α = 0.2。最终mT5取α = 0.3。

Comparison to related models

  论文简单介绍了一些对比模型:mBERT、XLM、XLM-R、mBART、MAGRE。

Experiments

在这里插入图片描述

图2 对比模型实验结果

  如图2所示,论文采用了三种训练方式:zero-shot;translate-train;inlanguage multitask。结果证明都是mT5-XXL更胜一筹。

在这里插入图片描述

图3 模型大小不同对不同训练方式的影响

  如图3所示,对于最小的模型,目标数据集(inlanguage multitask)上的训练比使用弱监督数据(translate-train)或纯英语数据(zero-shot)获得了更好的性能,而对于最大的模型,这三种设置之间的差距要小得多。

  对于两个最大的模型,zero-shot和translatetrain的性能几乎相同,表明随着模型容量的增加,单语数据集的机器翻译带来的回报越来越少。

在这里插入图片描述

图4 消融实验结果

  如图4所示,六项消融实验分别是:

  (1)将dropout增加到0.1。baseline为0。
  (2)将序列长度减少到512,baseline为1024。
  (3)将预训练目标中的平均噪声跨度长度增加到10,baseline为3。
  (4)将语言采样指数α调整为{0.2,0.7},baseline为0.3。
  (5)关闭mC4数据管道中的“线长过滤器”。
  (6)用来自103种语言的维基百科数据补充mC4。

  最终的效果当然是baseline最好。

Zero-shot generation

  由于mT5是一个生成模型,它可以以自由形式输出任意文本预测。作者发现,预测过程中缺乏约束导致mT5有时难以用微调期间看不到的语言生成格式良好的预测。发现其中许多错误是由于“意外翻译”成微调语言(英语)造成的。本节描述了这种行为的特征,并证明可以通过在微调阶段混合少量多语言预训练任务来抵消这种行为。

在这里插入图片描述

图5 错误示例

Illegal predictions

  mT5错误的重要部分实际上是非法跨度。通过检查,我们发现这些非法预测主要分为三类:(一)归一化,(二)语法调整,(三)意外翻译。

  (一)归一化,表示预测是合法的,但“等效”Unicode字符已被替换,因此可以通过Unicode NFKC正常化恢复合法范围。这在泰语、汉语和印地语中尤为常见,在这些语言中,大多数mT5-XXL非法预测都是通过归一化来解决的,如图6所示。

在这里插入图片描述

图6 使用归一化解决不合法输出

  (二)语法调整,包括对原文的细微形态变化。经常观察到这些调整在当目标跨度本身不能作为一个格式良好的答案时出现。例如,mT5-XXL在阿拉伯语和俄语预测被母语人士判断为对所提出的XQuAD问题的正确和合乎语法的答案,而任务目标被判断为不合语法的答案。这种类型的非法预测在具有大量语法大小写标记的语言中最常见,如俄语、土耳其语和德语。

  (三)意外翻译,涉及将部分或全部上下文跨度翻译成英语(所有微调数据的语言)的模型。值得注意的是,尽管从未看到并行训练数据,但mT5执行了“自发”翻译。

Preventing accidental translation

  避免意外翻译最简单的做法是设计一种特定于任务的微调机制,限制模型在合法范围内进行排名,从而完全消除非法预测的可能性。但是这样就和T5模型的“大一统”初衷违背了!

  作者认为出现疑问翻译的原因是:当给定非英语测试输入时,模型输出英语的原因是它在微调期间从未观察到非英语目标。随着纯英语微调的进行,该模型分配到非英语单词的可能性可能会降低,最终达到英语成为任何问题最有可能的答案的程度。

  作者提出的解决方案是:在微调过程中混合无监督多语言预训练任务,将语言采样参数α从0.3减少到0.1,产生近乎均匀的语言分布,鼓励模型同等对待所有语言。结果证明能够高效降低意外翻译现象。

Conclusion

  本文介绍了mT5和mC4:T5模型和C4数据集的大型多语言变体。证明了T5结构直接适用于多语言环境,并在各种基准测试中取得了优异的性能。还描述了在多语言预训练生成模型的zero-shot评估中可能出现的非法预测,并描述了一种避免此问题的简单技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1568467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Plonky2.5:在Plonky2中验证Plonky3 proof

1. 引言 Plonky2.5为QED Protocol团队主导的项目,定位为: 在Plonky2 SNARK中验证Plonky3 STARK proof。 从而实现Plonky系列的递归证明。 开源代码实现见: https://github.com/QEDProtocol/plonky2.5https://github.com/Plonky3/Plonky3&a…

CSGO比赛赛事大科普,Major并不是一个赛事!

关于CSGO比赛,有很多人都听过许多相关名词:Major、Minor、IEM、EPL、ESL ONE、Dreamhack、ESEA、Blast、EPICENTER等等,但大家有没有想过这些名词所代表的含义呢? Major、Minor严格意义上说,Major、Minor本身并不是赛事…

Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)

1.选型对比 最近项目上有对项目服务及中间件的监控需求,要做实现方案调研,总结一下自己的成果,目前业界主流可选的方案有: 国外开源: Prometheus:Prometheus - Monitoring system & time series dat…

python ---- %r %s格式输出的区别

在python中, % s和 % r是我们常用的格式符,它们的用法基本一致,但作用却不尽相同,下面简要说明一下两者的区别: 1. % s是将对象 / 变量传递到str()方法中,并将其转化为面向用户的可阅读的格式。 2. % r是将…

【竞技宝jjb.lol】LOL:WBG拒绝让二追三击败LNG晋级第三轮

北京时间2024年4月4日,英雄联盟LPL2024春季季后赛继续进行,昨天迎来次轮LNG对阵WBG。本场比赛WBG气势如虹的二连胜后被LNG连追两局,最后一局scout的小炮连续失误葬送局势,最终WBG3-2力克LNG晋级第三轮。以下是本场比赛的详细战报。 第一局: 首局比赛,LNG在蓝色方,WBG在红色方。…

Python基础之pandas:字符串操作与透视表

文章目录 一、字符串操作备注:如果想要全部行都能输出,可输入如下代码 1、字符检索2、字符转换3、字符类型判断4、字符调整5、字符对齐与填充6、字符检索7、字符切割8、字符整理 二、透视表1、pd.pivot_table2、多级透视表 一、字符串操作 备注&#xf…

【Python系列】Python中的YAML数据读取与解析

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

JavaSE——运算符

1. 概念 运算符是一种用于执行特定操作的符号或关键字。在编程中,运算符用于对变量、常量和表达式进行操作,以产生一个结果。 作为一门计算机语言, Java 也提供了一套丰富的运算符来操纵变量。 Java 中运算符可分为以下:算术运算…

前端订阅后端推送WebSocket定时任务

0.需求 后端定时向前端看板推送数据,每10秒或者30秒推送一次。 1.前言知识 HTTP协议是一个应用层协议,它的特点是无状态、无连接和单向的。在HTTP协议中,客户端发起请求,服务器则对请求进行响应。这种请求-响应的模式意味着服务器…

Waifu2x:使用深度卷积神经网络的动漫风格艺术的图像超分辨率

Github网址:nagadomi/waifu2x:动漫风格艺术的图像超分辨率 (github.com) 该项目主要讲述的是如何利用预训练的深度学习模型来达到无损扩大收缩和去噪,对于一般训练图像的小伙伴应该很清晰图像经常要通过resize操作固定大小,然后c…

Docker,anaconda环境的部署与迁移

功能上线将提上日程,但是如何将我windows环境下的程序放到linux服务器的测试环境跑通呢?这是我这整个清明假期将要解决的一件事,最蠢的办法就是看自己的环境下有哪些依赖,如何到服务器上一个一个下,但是首先这个方法很…

C#,简单,精巧,实用的按类型删除指定文件的工具软件

点击下载本文软件(积分): https://download.csdn.net/download/beijinghorn/89059141https://download.csdn.net/download/beijinghorn/89059141 下载审核通过之前,请从百度网盘下载(无积分):…

Flume进阶学习!

本文图片来自于8.flume实时监控文件hdfs sink使用演示_哔哩哔哩_bilibili Apache Flume 的启动过程及其配置文件和脚本 在官网下载的Flume的压缩包中,.lib文件有大量的jar包,按道理说只有.lib文件就可以运行Flume程序了。只不过需要java -jar命令还要加…

二维码:技术、商业与未来

title: 二维码:技术、商业与未来 date: 2024/4/3 19:12:28 updated: 2024/4/3 19:12:28 tags: 二维码技术商业应用移动支付物联网AR/VR融合智能家居数字化社会 第一章:引言 1. 二维码在数字化时代的重要性和普及程度 在数字化时代,二维码作…

【吊打面试官系列】Redis篇 -使用过 Redis 做异步队列么,你是怎么用的?

大家好,我是锋哥。今天分享关于 【使用过 Redis 做异步队列么,你是怎么用的?】面试题,希望对大家有帮助; 使用过 Redis 做异步队列么,你是怎么用的? 一般使用 list 结构作为队列,rpu…

31. UE5 RPG使用增强输入激活GameplayAbility(一)

在前面文章中,我们实现了对技能添加并直接激活功能,介绍了GA的相关参数配置。现在,我们还不能通过键位触发技能,正常在游戏时,我们需要通过键位触发技能,实现技能的激活。 在UE5里面添加了增强输入&#xf…

简历复印--原型模式

1.1 夸张的简历 简历的打印。"对编程来说,简单的复制粘贴极有可能造成重复代码的灾难。我所说的意思你根本还没听懂。那就以刚才的例子,我出个需求你写写看,要求有一个简历类,必须要有姓名,可以设置性别和年龄&am…

Unity类银河恶魔城学习记录12-2 p124 Character Stats UI源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI_Statslot.cs using System.Collections; using System.Collections.Gen…

root@localhost‘s password: Permission denied, please try again.

编辑、etc/ssh/sshd_config文件 ,将PermitRootLogin这行改为yes rootubuntu:/home/ubuntu# vim /etc/ssh/sshd_config 重新加载改文件 /etc/init.d/ssh restart

uniapp 设置globalStyle navigationBarTitleText 不显示

设置全局的navigationBarTitleText但是没有显示 没效果: 原因: 这里实际上设置了navigationBarTitleText 为"" 所以不会使用全局的设置 解决方法就是直接将这一行代码删除