深度学习经典模型之T5

news2025/1/11 15:02:31

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大模型商业化落地方案

在这里插入图片描述

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

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

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

相关文章

element ui form 表单出现英文提示的解决方案

场景再现: 在使用 form 表单的时候,一般都需要对表单元素进行验证,错误就出现在了这里,除了配置的错误信息,还会出现一个 英文校验提示,如下图: 解决方案 出现的原因是在el-form-item中使用…

推动数据治理与传统产业深度融合:解锁产业升级新引擎

标题:推动数据治理与传统产业深度融合:解锁产业升级新引擎 在数字化浪潮席卷全球的今天,数据已成为驱动经济社会发展的关键生产要素。传统产业,作为国民经济的基石,正面临着前所未有的变革挑战与转型升级的机遇。数据…

SVN的使用技巧

SVN(Subversion)是近年来崛起的版本管理工具,因为是免费的,所以用的人还是不少的。故做一些总结。 如果是新手,基本对SVN一点都不了解的话,建议去学习一下这个系统的教程,讲的也很详细Tortoise…

腾讯发布大模型安全与伦理报告:以负责任AI引领大模型创新

前言 随着AI模型的能力日益更加强大,如何让其行为和目的跟人类的价值、偏好、伦理原则、真实意图之间实现协调一致,这个被称为人机价值对齐的问题变得越来越重要。价值对齐对于确保人类与人工智能协作过程中的信任与安全至关重要,已经成为AI…

今年的智能手机不仅仅是AI

周一,苹果揭开了其iPhone 16系列的面纱,主要卖点是苹果智能。苹果的设备内AI系统提供了许多引人注目的功能,比如重写电子邮件、生成自定义表情符号和大幅升级的Siri。但在这些表面之下,AI为iPhone带来的还有一个重大变化&#xff…

使用API有效率地管理Dynadot域名,查看域名服务器(NS)信息

前言 Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮箱&…

js 深入理解生成器

目录 概述1 . 生成器基础2. 与普通函数的区别3. 通过 yield 中断执行3.1 yield 是干嘛的?3.2 yield 和 return 的区别3.3 每个生成器对象作用域都是独立的3.4 yeild 的使用位置3.5 生成器对象作为可迭代对象3.6 使用 yield 实现输入和输出3.6.1 yield实现输入3.6.1 …

【原创】java+swing+mysql长途客车售票管理系统设计与实现

个人主页:程序员杨工 个人简介:从事软件开发多年,前后端均有涉猎,具有丰富的开发经验 博客内容:全栈开发,分享Java、Python、Php、小程序、前后端、数据库经验和实战 文末有本人名片,希望和大家…

【双语新闻】 AI 安全新闻 :计算规模的下一代,按越狱敏感性和机器道德对模型进行排名

计算规模的下一代 The Next Generation of Compute Scale AI开发正处在计算规模大幅扩展的边缘。从芯片制造到电力基础设施的最新发展,都指向一个未来,即人工智能模型可能会超过今天最大的系统。在这篇文章中,我们将审视关键的发展以及它们对…

Grafana 汉化

点击 Home -> Administration 点击 Default preferences 点击 中文(简体)后点击 Save 即可

科技感爆棚,智慧票务系统让你的出行超省心

宝子们👋,今天一定要给大家介绍一个超级厉害的东西 —— 智慧票务系统🎉!🎈以前去景区、看演出,排队买票简直是一场噩梦😫,浪费时间不说,还影响心情。但有了智慧票务系统…

52.【C语言】 字符函数和字符串函数(strcat函数)

6.strcat函数 *简单使用 cplusplus的介绍 点我跳转 strcat:string concatenate 字符串连接 *网页翻译 函数 strcat //strcat返回类型char * char * strcat ( char * destination, const char * source ); 连接字符串 对目标(destination)字符串追加源(source)字符串的一个拷…

常用环境部署(二十)——docker部署OpenProject

一、安装Docker及Docker-compose https://blog.csdn.net/wd520521/article/details/112609796 二、docker拉取OpenProject镜像 1、拉取镜像 docker pull openproject/openproject:14 注意: 拉取镜像的时候会有超时的现象出现,大家重新拉取几次就行…

集成电感器TPS82130

集成电感器TPS82130 简介 TPS82130是集成了电感跟0603一样大的BUCK降压模块。输入电压3-17V,输出电压0.9-6V,输出电流3A,0.8V参考电压。 TPS82130属于系统级的封装电源模块,目前价格大概是4.5元。它可以实现100%的占空比&#x…

Leetcode面试经典150题-202.快乐数

题目比较简单,重点是理解思想 解法都在代码里,不懂就留言或者私信 面试的时候可以用我提交的解法,这个更优 class Solution {/**第一种-常规解法,主要的思想是如果出现了循环或者等于1,计算过程就停止如果等于1&…

ClassLoader中各个字段意思

ClassLoader(类加载器)是JVM(Java虚拟机)中一个非常重要的组件,它主要负责将Java类文件(.class文件)加载到JVM的内存中,并对其进行验证、准备、解析和初始化。ClassLoader中的字段就…

vue3+ant design vue动态实现级联菜单~

1、这里使用的是ant design vue 的TreeSelect 树选择来实现的。 <a-form-item name"staffDept" label"责任部门" labelAlign"left"><a-tree-selectv-model:value"formState.staffDept"show-search//允许在下拉框中添加搜索框…

零基础上手WebGIS+智慧校园实例(长期更新#2)【html by js】

请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01; 等下再更新一下1. WebGIS矢量图形的绘制&#xff08;超级详细&#xff01;&#xff01;&#xff09;&#xff0c;2. WebGIS计算距离&#xff0c; 以及智慧校园实例 with 3个例子&#xff01;&#xff01;…

Android中多进程通信有几种方式?需要注意哪些问题?

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 在Android中&#xff0c;多进程通信&#xff08;Inter-Process Communication&#xff0c;IPC&#xff09;是指不同进程之间进行数据交换和协同…

Unity 使用Spine动画切换时有残影

问题描述&#xff1a; 最近在用spine动画时发现&#xff0c;有时候切换动画的时候会显示一个动画残影很影响体验 所以找了半天才找到解决方案 解决办法 在Unity的Project下找到Spine动画的SkeletonData文件&#xff0c;选中该文件之后在Inspector面板上找到Animationgs下面…