当前位置: 首页 > news >正文

深度学习经典模型之T5

T5(Text-to-Text Transfer Transformer) 是继BERT之后Google的又外力作,它是一个文本到文本迁移的基于Transformer的NLP模型,通过将 所有任务统一视为一个输入文本并输出到文本(Text-to-Text)中,即将任务嵌入在输入文本中,用文本的方式解决各种NLP的任务。T5是由google的Raffel等人于2019年提出了新的预训练模型,其参数量高达110亿,完爆BertLarge模型,且在多项NLP任务中达到SOTA性能,在NLP兴起了“迁移学习技术”热潮,带来了一系列方法、模型和实距的创新。

本文从 基本信息、模型架构、多个官方模型以及其T5主要贡献与应用场景对T5做一个简要的介绍.

附录是相关的概念

模型架构

T5(Text-to-Text Transfer Transformer) 是基于Transformer结构的序列到序列(Seq2Seq)模型,其主要特点是将多种NLP任务(如翻译、摘要、问答等)转化为一个统一的框架下进行训练。即在不同的具体任务上有不同的prefix指导模型,对预训练目标进行大范围探索,最后得到一个很强的baseline。而我们之后做这方面实验就能参考它的一套参数。

三种模型对比

为了解决Text-to-Text问题,作者分别使用了三种结构作为实验Encoder-DecoderLanguage modelPrefix LM。Language model和Prefix LM比较适用于NLU类问题,但对于NLG,实验结果表明Encoder-Decoder效果更好。所以T5选择了Encoder-Decoder结构。如下图所示:

image.png

Encoder-Decoder: T5使用的就是Transformer标准的基本结构,分成 Encoder 和 Decoder 两部分,但有所区别:对于Encoder部分,是双向注意力,词与词之间互相可见,之后结果输给Decoder, Decoder部分当前时间步的词汇只能看到之前时间步的词汇。

Decoder-only: 在T5的自回归模型中当前时间步词汇只能看到之前时间步词汇。

GPT全系列及目前主流大模型均为 Decoder-only 结构。

Prefix LM: 通过巧妙的 Attention 设计实现双向注意力与单向注意力的结合,一部分如 Encoder 一样能看到全体信息,一部分如Decoder一样只能看到过去信息。

三种注意力机制对比

在同一种模型结构下,这三种架构依旧是通过注意力机制的 Mask 控制,下图表示不同注意掩码模式的矩阵。

image.png

上图中注意掩码模式的矩阵符号

  • 自我注意力机制的输入和输出分别表示为x和y。
  • 第i行和第j列的深色单元格表示允许自我注意机制在输出时间步i关注输入元素j。
  • 浅色单元格表示不允许自我注意机制关注相应的i和j组合。

上图中左中右的三个图示说明说明

  • 左图:一个完全可见的掩码允许自我注意力机制在每个输出时间步关注完整的输入。
  • 中间:因果掩码防止第i个输出元素依赖“未来”的任何输入元素。
  • 右图:带有前缀的因果掩码允许自我注意力机制对输入序列的一部分使用完全可见的掩蔽
  • 不同架构的一个主要区别因素是模型中不同注意力机制使用的“掩码”。
  • 同样运算复杂度的情况下,Encoder-decoder结构的参数量是其他结构的两倍左右。

实验路径

明确的基础结构之后,就开始考虑自监督的组织方式、掩码(方式、比例等)如何设计,下图是一个实验路径,最终探索最优结果:

!image.png

High-level approaches

高层次方法对比(左图)

  • Prefix LM: 即有条件文本生成,输入完整文本,输出从左到右预测
  • BERT-style: 就是像 BERT 一样将一部分给破坏掉,然后还原出来
  • Deshuffling: 就是将文本打乱,然后还原出来

Corrupted strategies

对文本一部分进行破坏时的策略(第二图)

  • Mask: 如现在大多模型的做法,将被破坏 token 换成特殊符如 [M];
  • Replace spans: 可以把它当作是把上面 Mask 法中相邻[M] 都合成了一个特殊符,每小段替换一个特殊符,提高计算效率;
  • Drop: 没有替换操作,直接随机丢弃一些字符;

Corrupted Rate

(第三图)文本的 Mask 比例,论文中挑了 4 个值,10%,15%,25%,50%,最后明确BERT 的 15% 是最最优选择

image.png

Corrupted Span length

(第四图) Replace spans 对多长的 span 进行破坏,选定了4个探索值: 2,3,5,10 这四个值,最后发现span平均长为3结果最好。

image.png

模型配置

模型参数

为了适应不同使用场景,T5有五个不同size。Small、Base、Large、3B 和 11B, 模型参数量分别为 6000 万、2.2 亿、7.7 亿、30 亿和 110 亿。

image.png

执行效果

image.png

最优总结

综上所述,作者发现,一个最优的预训练T5模型应该是这样的:

目标函数:Span-corruption,span的平均长度为3,corruption的概率为15%
更长的训练步数:采用C4数据集继续训练1M步(bs=2^11),总计约训练了1 万亿个token
模型大小

  • base版本:24层,隐层768维,12个注意力头,参数量为220M
  • small版本:12层,隐层 512维,8个注意力头,参数量约为60M
  • Large版本:48层,隐层1024维,16个注意力头,参数量约为770M
  • 3B和11B版本:48层,隐层1024维,分别为32/128个注意力头,参数量达到了 2.8B和11B
  • 多任务预训练:在非监督预训练时,混合有监督任务可以涨点。
  • 微调:在每个任务上微调
  • Beam Search:Beam size为4,长度惩罚为0.6

image.png

此段中文来自 zhuanlan.zhihu.com/p/580554368 ,但结论归属于T5论文作者,见上上图)

T5主要贡献

Text-to-Text Transfer

F5最大的创新在于给整个NLP预训练模型领域提供了一个通用框架,把所有任务都转化成一种文本。即将每个NLP任务,包括NLU和NLG,统一成了"text-to-text"的问题。如下图在翻译、问答、分类等四个不同任务上,添加不同的prefix在输入上,即可通过生成模型得到输出结果。

允许在不同的任务集合中使用相同的模型、损失函数、超参数等。

image.png

C4(Colossal Clean Crawled Corpus)

作者从Common Crawl里清出了750GB的训练数据,并取名为"Colossal Clean Crawled Corpus (超大型干净爬取数据)",简称 C4。

Common Crawl是一种公开可用的web存档,它通过从已删除的HTML文件删除标记和其他非文本内容来提供“web提取文本”, 该存档大约每月会新产生约20TB的抓取文本数据。但数据主要由诸如菜单、错误消息或重复文本之类的胡言乱语或锅炉板文本组成,且有大量删减的文本或冒犯性语言、占位符文本、源代码等等。

应用场景

在过去的几年中,随着深度学习技术的发展,NLP领域取得了突破性进展。在众多的NLP模型中,T5模型作为一种强大的语言生成模型,在自然摘要机器翻译智能问答文本分类等任务中表现出色,成为了该领域的研究热点之一。

附-文本中涉及的相关深度学习的基本概念

SOTA(State of the art) 是指在某一领域做的Performance里最好的modal, 一般是指在一些benchmark的数据集上跑分非常高的那些模型。

迁移学习 通俗来讲,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的相似性,用成语来说就是举一反三。

涌现 模型规模达到一定阈值以上后,会在多步算术、大学考试、单词释义等场景的准确性显著提升,称为涌现。

思维链(Chain-of-Thought,CoT) 是指通过让大语言模型(LLM)将一个问题拆解为多个步骤,一步一步分析,逐步得出正确答案。需指出,针对复杂问题,LLM直接给出错误答案的概率比较高。思维链可以看成是一种指令微调。

NLU和NLG:是指NLP(自然语言处理)的两个主要核心任务。NLU是所有支持机器理解文本内容的方法模型或任务的总称,即能够进行常见的文本分类、序列标注、信息抽取等任务。NLG(自然语言生成) 将非语言格式的数据转换成人类可以理解的语言格式。


👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉如何学习AI大模型?👈

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

请添加图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

在这里插入图片描述

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

在这里插入图片描述

四、AI大模型商业化落地方案

在这里插入图片描述

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
请添加图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • matlab处理函数3
  • C++库std::clamp
  • Docker容器创建时,无法访问镜像源:Could not connect to archive.ubuntu.com:80
  • 【项目】高并发内存池
  • Rust 数据类型
  • 坐牢第三十七天(Qt)
  • 【C++算法】分治——归并
  • 每日必抢小程序下单总结
  • C++——深部解析哈希
  • 助力汽车零部件产业发展,2025 第十二届广州国际汽车零部件加工技术及汽车模具展览会与您相约“羊城”广州
  • 了解elementUI的底层源码, 进行二次开发
  • SpringBoot项目获取统一前缀配置以及获取非确定名称配置
  • python画图|3D surface基础教程
  • 【诉讼流程-健身房-违约-私教课-多次沟通无效-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(1)】
  • tensor 的运算(加法、点乘、矩阵乘法)
  • JavaScript 如何正确处理 Unicode 编码问题!
  • docker python 配置
  • JS 面试题总结
  • react-native 安卓真机环境搭建
  • spring boot 整合mybatis 无法输出sql的问题
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 反思总结然后整装待发
  • 实现菜单下拉伸展折叠效果demo
  • 实现简单的正则表达式引擎
  • 使用docker-compose进行多节点部署
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 国内开源镜像站点
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​VRRP 虚拟路由冗余协议(华为)
  • # centos7下FFmpeg环境部署记录
  • #if 1...#endif
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #图像处理
  • #职场发展#其他
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (4.10~4.16)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Charles)如何抓取手机http的报文
  • (HAL库版)freeRTOS移植STMF103
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (原創) 未来三学期想要修的课 (日記)
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • ****Linux下Mysql的安装和配置
  • ***原理与防范
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET 中的轻量级线程安全
  • .Net(C#)常用转换byte转uint32、byte转float等