深入理解深度学习——BERT派生模型:T5(Text to Text Transfer Transformer)

news2024/10/7 6:48:44

分类目录:《深入理解深度学习》总目录


T5的全称为Text to Text Transfer Transformer,是谷歌提出的预训练语言模型领域的通用模型,该模型将所有自然语言问题都转化成文本到文本的形式,并用一个统一的模型解决。为了得到大一统的高质量预训练语言模型,T5不可避免地走上了“大力出奇迹”的道路,使用了更大的模型和更多的数据,但是模型和数据规模只是T5通往最强模型的手段之一,T5最核心的理念是:使用前缀任务声明及文本答案生成,统一所有自然语言处理任务的输入和输出。在此之前的几乎所有预训练语言模型,在下游任务微调过程中都需要添加非线性层,将模型的输出转化为任务指定的输出格式。T5不需要对模型做任何改动,只需要提供下游任务的微调数据;不需要添加任何非线性层,唯一需要做的就是在输入数据前加上任务声明前缀,下图所示为T5的输入格式和输出格式。绿色部分表示翻译任务,红色和黄色部分分别表示CoLA任务和STS-B任务,蓝色部分表示摘要生成任务,左侧的框表示T5的输入样例,右侧的框则是对应的输出结果。
T5的输入格式和输出格式片描述
T5将自然语言处理任务都转化成几乎一致的格式,即输入是带有任务前缀声明的文本序列,输出的文本序列是相应任务的结果。其输入格式和输出格式类似于GPT-3在Few-shot Learning设置下的格式,与GPT-3不同的是,T5适用于所有自然语言处理任务,而GPT-3受限于模型结构,只在文本生成任务上有独特的优势。由于T5的论文细节和对比实验很丰富,本文挑选关键算法和模型细节进行介绍。

算法细节

模型结构

T5在结构选型时考虑了3种模型结构,如下图所示,分别是Encoder-Decoder结构(传统的Transformer结构)、Decoder结构(GPT的结构)和Prefix LM结构(UniLM的结构)。
T5的结构选型图
T5对这3种模型结构均做了测试,发现Transformer Encoder-Decoder结构效果最佳,于是遵循实践出真知的法则,T5的模型结构采用了传统的Transformer结构。

训练数据

T5训练的文本均来自Common Crawl数据集,该数据集中的数据是从互联网上爬取的(大约每个月抓取20TB的文本数据)。T5选取了2019年4月的数据,经过清洗,得到750GB的满足训练要求的数据,将其作为训练数据,并取名为C4数据集(Colossal Clean Crawled Corpus),具体的清洗要求如下:

  • 只保留结尾是正常符号的句子,如句号、感叹号、问号和引号。
  • 删除所有内容少于5句且句子长度小于3个词的页面数据。
  • 删除所有包含黄暴词的页面数据。
  • 删除包含“.JavaScript”的词(针对网页数据)。
  • 删除包含占位符“lorem ipsum”(排版测试中经常出现)的页面数据。
  • 删除编程语言中经常出现的大括号对“{}”所在的页面数据。
  • 删除连续重复3次以上的句子,只保留一句。
  • 利用语种检测工具langdetect,只保留语种检测为英语,且置信度超过0.99的数据(训练针对英语任务的模型)。
输入和输出的格式化

T5与其他模型最大的区别在于,对下游任务微调训练更友好。不需要做任何模型侧的改动,只需要对下游任务的训练数据做简单改写,就可以用T5完成相应的任务。具体而言,在输入数据之前,添加任务的前缀声明,并将输出数据转化为文本表示,分类任务使用类别名即可。尤其针对输出结果是连续值的任务,根据训练数据的标签分布,采用模糊化的方式,将数值格式转化为文本格式,如1~5分的连续分值,以0.2为间隔将其分桶量化,则可得到一系列字符串标签类别,如“1”“1.2”“4.8”“5”等。下面介绍两个经典任务的改写方法。

  • CoLA(The Corpus of Linguistic Acceptability,判断句子的语法是否可接受,属于二分类任务,输出0表示不可接受,输出1表示可接受):

原始输入:John made Bill master of himself
原始标签:1
T5输入:cola sentence:John made Bill master of himself.
T5标签:acceptable

  • STS-B(Semantic Textual Similarity Benchmark)为语义相似度检测任务,输出1~5分内的连续值:

原始输入1:Representatives for Puretunes could not immediately be reached for comment Wednesday.
原始输入2:Puretunes representatives could not be located Thursday to comment on the suit.
原始标签(数值类型):3.25
T5输入:

  • stsb sentence1:Representatives for Puretunes could not immediately be reached for comment Wednesday.
  • sentence2: Puretunes represen-tatives could not be located Thursday to comment on the suit.

T5标签(字符串类型):3.2

训练过程

T5进行了很多对比实验,来挑选最合适的训练方法,具体而言,有如下3种(用“|”分割T5的输入和输出):

  • 标准语言模型式:已知上半句,预测下半句。例如:Thank you for inviting|me to your party last week.
  • BERT式:掩盖一部分词,还原被掩盖的词。例如:Thank you<MASK>``<MASK>me to your party<MASK>week|Thank you for inviting me to your party last week.
  • 乱序还原式:将文本顺序打乱,还原正确的语序。例如:party me for your to.last you inviting week Thank|Thank you for inviting me to your party last week.

实验表明,采用BERT式的训练方法效果最好,其实这也是BART所用的训练方法之一(BART还使用了其他噪声方法)。BERT式的训练方法依然有不少细节需要推敲,如掩码范围和替换词挑选策略等,因此T5又做了3组实验,挑选最佳的替换词方式,具体而言,有如下3种(用“|”分割T5的输入和输出):

  • 单个词用<MASK>替换,与BERT一样。例如:Thank you<MASK>``<MASK>me to your party<MASK>week|Thank you for inviting me to your party last week.
  • 若干个连续词一起替换,只预测被替换的词。例如:Thank you<X>me to your party<Y>week.|<X>for inviting<Y>last<Z>
  • 随机丢弃若干词,只预测被丢弃的词。例如:Thank you me to your party week.|for inviting last

实验表明,采用若干个连续词一起替换的方式效果最好,虽然其思想与BART的Text Infilling噪声训练方法一致,但形式上更简洁,BART以原文作为Decoder的标签,而T5只需要预测被掩盖的部分词即可。与此同时,T5还做了更为细致的实验,测试在不同掩码范围下模型的表现,以找出最合适的掩码长度。实验结果表明,长度为3是最合适的,而替换概率遵循BERT的15%是最佳的原则。

综上所述,T5利用了近年来在预训练语言模型上使用的技巧,做了大量的对比实验。虽然T5并没有提出新的模型结构或新的训练模式,但它通过巧妙地改写输入和输出,让T5不需要改动模型结构,就能在下游任务数据集上进行微调训练,本身就算一个跨越式进步。借助超大的模型规模和训练数据,具有110亿参数规模的T5在几乎所有任务上都达到了SOTA效果,再一次证明了预训练语言模型领域“大力出奇迹”的法则。从Transformer被提出到T5的出现,历史的车轮向前滚动,基于Transformer的预训练语言模型还是回归了最初的样子,也奠定了Transformer作为特征提取器在自然语言处理领域不可撼动的地位。

参考文献:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.
[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[4] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[5] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[6] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[7] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.

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

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

相关文章

Tkinter创建列表使用方法

前言 ttk.Treeview 是 Tkinter 模块中的一个组件&#xff0c;它提供了一个可用于显示层次结构数据的树状列表。它具有以下特点和功能&#xff1a; 显示层次结构&#xff1a;ttk.Treeview支持以树状结构显示数据。每个节点可以有子节点&#xff0c;从而形成层次结构。用户可以展…

GPT-2源码实现及GPT-3、GPT-3.5、GPT-4及GPT-5内幕解析(三)

GPT-2源码实现及GPT-3、GPT-3.5、GPT-4及GPT-5内幕解析(三) 5.3 GPT-3 内幕机制可视化解析 GPT-3是一个基于Transformer的语言模型,通过不同的层次提取语言不同层面的特性,构建整个语言的语义信息,它学习的过程跟人类正常学习的过程是类似的,开始的时候是一个无监督预训练…

材料表面与界面 关键概念介绍

目录 1. Conductivity and two general modes of charge transport in solid-state materials (Fig. 1b) 2. What is Bravais lattice, what is basis and what is crystal lattice (Fig. 2). The differences between five possible Bravais lattices in two dimensions (Fi…

【计算机毕设系统项目说明】VB+ACCESS采购管理系统开发(论文+系统+答辩PPT+封面)

大家好&#xff0c;这里是小伙整理的VB项目系列&#xff0c;大家可以用于自己的课设Q或毕设&#xff0c;需要的可自取。 项目包含内容 项目包含&#xff1a; 项目源码 论文 答辩PPT 其他相关 截图&#xff1a; 库存管理软件说明 一.系统设置 1&#xff09; 锁定&#xff1…

2023考研一战上岸 电子科技大学 860软件工程 经验分享

目录 1. 前言&#xff1a;考研&#xff0c;心态最重要&#xff01; 2. 初试各科复习经验 (1) 数学一 (2) 英语一 (3) 专业课 (4) 政治 (5) 四门课时间划分 3. 复试流程和备考建议 (1) 复试流程 (2) 备考建议 4. 结语 首先&#xff0c;先简要做一个自我介绍&#xff…

记录:Qt Creator 10配置安卓开发环境

Qt Creator 现在的安卓开发环境配置相比老版本方便了不少&#xff0c;本文以目前在线安装版的 Qt Creator 10.0.2 Qt 5.15 / Qt 6.5 为例做演示&#xff08;有些文件可能会因为网络问题需要科学上网才能下载&#xff09;。 1.下载 JDK 11 https://adoptium.net/zh-CN/temuri…

MATLAB 之 对话框设计

这里写目录标题 一、对话框设计1. 控件的种类及作用2. 控件的操作2.1 建立控件对象2.2 控件对象的基本控制属性2.3 建立控件对象举例 一、对话框设计 对话框是用户与计算机进行信息交流的临时窗口&#xff0c;在现代软件中有着广泛的应用。在软件设计时&#xff0c;借助于对话…

分治、贪心专题

分治、贪心专题 分治篇LeetCode 241. 为运算表达式设计优先级解题思路代码实现总结 不要纠结&#xff0c;干就完事了&#xff0c;熟练度很重要&#xff01;&#xff01;&#xff01;多练习&#xff0c;多总结&#xff01;&#xff01;&#xff01; 分治篇 LeetCode 241. 为运算…

夏驰和徐策的大学英语四六级备考

一、今日单词&#xff1a; 1.anxiety 中文意思是"焦虑"或"忧虑"。它通常用来描述一种内心的不安、紧张或担忧感。"anxiety"可以指个人的情绪状态&#xff0c;也可以指一种心理疾病或临床诊断。 以下是一些关于"anxiety"的用法和例…

3DMAX样条线轮廓修改器插件SplineOffset使用方法详解

SplineOffset 是 3dMax 的修改器&#xff0c;可创建样条曲线的多个克隆&#xff0c;并可选择增量增加或减少偏移、平移和旋转。在许多方面&#xff0c;它类似于 3ds Max 的内置阵列工具与样条线偏移功能相结合&#xff0c;但有两个主要优点&#xff1a;首先&#xff0c;SplineO…

Spring Framework 6 中的设计模式

文章目录 1、简介2、单例模式&#xff08;Singleton Pattern&#xff09;2.1 单例 Beans&#xff08;Singleton Beans&#xff09;2.2 自动注入单例&#xff08;Autowired Singletons&#xff09; 3、工厂方法模式&#xff08;Factory Method Pattern&#xff09;3.1 应用上下文…

【课程笔记】分布式计算系统 徐辰

分布式计算系统笔记 课程介绍 课程背景 大数据处理系统——> 分布式计算系统 Hadoop&#xff0c;Spark&#xff0c;Flink大数据涵义过于宽泛 本课程/教材 强调系统设计、原理、编程的集合 课程目的 培养系统思维 应用层&#xff1a;搜索、推荐算法设计层&#xff1a…

work 6.24

1、grep&#xff1a;查找字符串 grep 字符串 文件名 -w:按单词查找 -R:实现递归查找&#xff0c;主要用于路径是目录的情况 -i:不区分大小写 -n:显示行号 grep -w "^ubuntu" /etc/passwd ---->查找以ubuntu单词作为开头位置的所在行 grep -w "ubuntu$"…

使用frp实现内网穿透

本篇博客最早发布于实验室公共博客&#xff0c;但已无人维护&#xff0c;现迁移至个人博客 引言 一打五师兄走之前留了一块树莓派给我&#xff0c;暑假闲来无事拿出来玩玩 如果每次都连接显示屏和键盘使用有点麻烦而且低级 正常笔记本和树莓派都连着实验室的WIFI&#xff0c…

【人工智能概论】 PyTorch中的topk、expand_as、eq方法

【人工智能概论】 PyTorch中的topk、expand_as、eq方法 文章目录 【人工智能概论】 PyTorch中的topk、expand_as、eq方法一. topk方法1.1 简介1.2 参数详解 二. expand_as方法三. eq方法 一. topk方法 1.1 简介 对PyTorch中的tensor类型的数据都存在topk方法&#xff0c;其功…

【Java高级语法】(十四)函数式接口:与Lambda表达式共舞:探索Java函数式接口,赋予程序员更强大的编程能力!~

Java高级语法详解之函数式接口 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 函数式接口定义3.2 函数式接口实战3.3 使用技巧 4️⃣ 内置函数式接口5️⃣ 应用场景&#x1f33e; 总结 1️⃣ 概念 Java函数式接口起源于Java 8版本中的Lambda表达式和函数式编程特性的引入。在之前的…

Vue基础(二)

Vue组件 组件化是Vue.js中的重要思想 它提供了一种抽象&#xff0c;让我们可以开发出一个个独立可复用的小组件来构造我们的应用。 任何的应用都会被抽象成一颗组件树。 注册组件 <body> <div id"app"> <!--3、使用组件--><my-cpn></m…

C语言小游戏——猜数字

猜数字游戏是一种简单而有趣的游戏&#xff0c;玩家需要根据提示猜出一个随机数。 //游戏菜单 void menu() {printf("*********************\n");printf("* 1.play *\n");printf("* 0.exit *\n");printf("********…

一道北大强基题背后的故事(五)——解数学题的数学模型是什么?

早点关注我&#xff0c;精彩不错过&#xff01; 上回说到&#xff0c;数学之美&#xff0c;美在作为一个工具的通用性&#xff0c;艺术追求和思维游戏&#xff0c;相关内容请戳&#xff1a; 一道北大强基题背后的故事&#xff08;四&#xff09;——数学之美&#xff0c;美在哪…

详解sentinel使用

目录 1.概述 2.下载安装 3.应用托管 4.流量控制 4.1.流控规则 4.2.流控模式 4.2.1.直接模式 4.2.2.关联模式 4.2.3.链路模式 4.3.流控效果 4.3.1.预热 4.3.2.排队等待 5.降级 5.1.降级规则 5.2.降级策略 5.2.1.RT 5.2.2.异常比例 5.2.3.异常数 1.概述 senti…