【LLM第7篇】transformer跟bert、gpt、大模型的联系

上一篇讲了transformer的原理,接下来,看看它的衍生物们。

Transformer基本架构

Transformer模型主要由两部分组成:编码器(Encoder)和解码器(Decoder)。编码器负责处理输入序列,将其转换为一系列内部表示;解码器则根据这些内部表示生成输出序列。编码器和解码器都由多个相同的层堆叠而成,每层包括自注意力机制和全连接前馈网络两个子层,子层之间采用残差连接和层归一化技术。

自注意力机制是Transformer的核心所在,它通过计算输入序列中每个位置上的向量表示之间的相似度,为每个位置生成一个权重向量。这样,模型就能够在处理每个位置上的向量时,考虑到其他所有位置上的信息,从而实现对全局信息的捕捉。全连接前馈网络则负责进一步处理自注意力机制的输出,提取更高级的特征表示。

随着研究的深入,Transformer模型也涌现出了许多变种。这些变种模型在保持基本架构不变的基础上,对某些组件进行了改进或添加新的组件,以提高模型的性能或适应不同的任务需求。

1.bert(Bidirectional Encoder Representations from Transformers)

前面有一些bert原理相关的博客,这里主要讲下主要区别,不对原理深究。

BERT是Transformer的一个重要变种,它采用全连接的双向Transformer编码器结构,通过预训练的方式学习通用的语言表示。BERT在预训练时采用了两种任务:遮盖语言建模(Masked Language Modeling)和下一句预测(Next Sentence Prediction)。这两种任务使得BERT能够捕获到丰富的上下文信息,从而在下游任务中取得良好的表现。

BERT的双向表示前,先回顾一下常见的双向表示

网络结构的双向:首先区别于biLSTM那种双向, 那种是在网络结构上的双层

例如 biLSTM来进行一个单词的双向上下文表示

如图所示:单层的BiLSTM是由两个LSTM组合而成,一个是正向去处理输入序列;另一个反向处理序列,处理完成后将两个LSTM的输出拼接起来。在上图中,只有所有的时间步计算完成后,才能得到最终的BiLSTM的输出结果。正向的LSTM经过6个时间步得到一个结果向量;反向的LSTM同样经过6个时间步后得到另一个结果,将这两个结果向量拼接起来,得到最终的BiLSTM输出结果。

请注意,BERT并没有说讲一个序列反向输入到网络中,所以BERT并不属于这种。

用Bi-RNN或Bi-LSTM来“同时从左到右、从右到左扫描序列数据”。Bi-RNN是一种双向语言模型,刻画了正反两个方向上,序列数据中的时空依赖信息。双向语言模型,相比RNN等单向模型,可以提取更多的信息,模型潜力也更大。

Transformer也可以用来构建双向语言模型。最粗暴的方式,就是Bi-Transformer,即让2个Transformer分别从左到右和从右到左扫描输入序列。当然,这样做的话,模型参数太多,训练和推断阶段耗时会比较大。

BERT没有在Transformer的结构上费工夫,而是采用特别的训练策略,迫使模型像双向模型一样思考。这种训练策略就是随机遮蔽词语预测。BERT会对一个句子的token序列的一部分(15%)进行处理:(1)以80%的概率遮蔽掉;(2)以10%的概率替换为其他任意一个token;(3)以10%的概率保持。

预训练任务是一个mask LM ,通过随机的把句子中的单词替换成mask标签, 然后对单词进行预测。

这里注意到,对于模型,输入的是一个被挖了空的句子, 而由于Transformer的特性, 它是会注意到所有的单词的,这就导致模型会根据挖空的上下文来进行预测, 这就实现了双向表示, 说明BERT是一个双向的语言模型。

如我们所见,ELMo对上下文进行双向编码,但使用特定于任务的架构;而GPT是任务无关的,但是从左到右编码上下文。BERT(来自Transformers的双向编码器表示)结合了这两个方面的优点。它对上下文进行双向编码,并且对于大多数的自然语言处理任务 (Devlin et al., 2018)只需要最少的架构改变。通过使用预训练的Transformer编码器,BERT能够基于其双向上下文表示任何词元。在下游任务的监督学习过程中,BERT在两个方面与GPT相似。首先,BERT表示将被输入到一个添加的输出层中,根据任务的性质对模型架构进行最小的更改,例如预测每个词元与预测整个序列。其次,对预训练Transformer编码器的所有参数进行微调,而额外的输出层将从头开始训练。 描述了ELMo、GPT和BERT之间的差异。

2.gpt

GPT(Generative Pre Training,生成式预训练)模型为上下文的敏感表示设计了通用的任务无关模型 (Radford et al., 2018)。GPT建立在Transformer解码器的基础上,预训练了一个用于表示文本序列的语言模型。当将GPT应用于下游任务时,语言模型的输出将被送到一个附加的线性输出层,以预测任务的标签。与ELMo冻结预训练模型的参数不同,GPT在下游任务的监督学习过程中对预训练Transformer解码器中的所有参数进行微调。GPT在自然语言推断、问答、句子相似性和分类等12项任务上进行了评估,并在对模型架构进行最小更改的情况下改善了其中9项任务的最新水平。

然而,由于语言模型的自回归特性,GPT只能向前看(从左到右)。在“i went to the bank to deposit cash”(我去银行存现金)和“i went to the bank to sit down”(我去河岸边坐下)的上下文中,由于“bank”对其左边的上下文敏感,GPT将返回“bank”的相同表示,尽管它有不同的含义。

3.Transformer-XL

Transformer-XL旨在解决Transformer在处理长序列时遇到的问题。它通过引入分段循环机制和相对位置编码,使得Transformer能够处理更长的序列。此外,Transformer-XL还采用了分段注意力机制,以减少计算量和内存消耗。

4.gpt2

5.gpt3

6.chatgpt

7.大模型

其它:

transformer:
编码器可以用来做分类任务,解码器可以用来做语言建模。应用到各大主流模型中,会有意想不到的效果,最近看的论文中,大多从transformer中摘取一些结构,用在业务场景模型中。

参考:
1.双向lstm

2.bert

3.变体概要

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用OCR批量提取短剧和电视剧内的字幕?

为什么使用光字符识别 (OCR) 提取视频字幕? 视频字幕提取是将视频中的字幕转换为 SRT 格式文本的过程。传统方法是使用自动语音识别 (ASR) 技术,但对于某些类型的视频(例如短剧、电视剧、电影、访谈等节目),由于这类型…

想让企业“火力全开”?找六西格玛培训公司就对了!

在如今的市场环境中,企业面临着不断变化的挑战和无限的可能。要在这场竞争中独领风骚,实现稳健的增长,六西格玛作为一种以数据驱动的管理理论,提供了实际可行的解决方案。六西格玛培训公司,作为这一领域的专家&#xf…

maven聚合工程整合springboot+mybatisplus遇到的问题

前言(可以直接跳过看下面解决方法) 项目结构 两个module: yema-terminal-boot 是springboot项目,子包有:controller、service、dao 等等。属于经典三层架构。那么,该module可以理解为是一个单体项目&…

如何关闭MySQL凌晨12点自动弹窗?

要关闭 MySQL 在凌晨 12 点自动弹窗的行为,首先需要确定弹窗的具体原因。 打开“任务计划程序”: 按 Win R,输入 taskschd.msc,然后按 Enter。 在左侧导航栏中,选择“任务计划程序库”。 查找与 MySQL 相关的任务&…

嵌入式进阶——矩阵键盘

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 矩阵按键原理图按键状态检测单行按键状态检测多行按键状态检测 状态记录状态优化循环优化 矩阵按键 矩阵键盘是一种常见的数字输入…

【C++题解】1321. 时钟旋转(2)

问题:1321. 时钟旋转(2) 类型:字符串 题目描述: 时钟从时间:xx:xx(xx时xx分),走到时间:xx:xx(xx时xx分),时针共旋转了多…

openresty(Nginx) 隐藏 软件包名称 版本号 升级新版本

1 访问错误或者异常的URL 2 修改配置,重新编译,升级 #修改版本等 vim ./bundle/nginx-1.13.6/src/core/nginx.h #define nginx_version 1013006 #define NGINX_VERSION "1.13.6" #define NGINX_VER "openresty/&q…

2024年软件设计师备考复习资料(应用技术)

应用设计,考试时间为120分钟;总共需做5道题,满分75分(每题15分)。前4题为必答题,最后2题为要求选答一题(C或Java),45及格 目录 1. 数据流图(需求分析&#…

APM 2.8外置罗盘校准

请注意: GPS不可以飞控带电插拔,带电插拔会产生差分电压,可能会导致GPS模块损坏,无法搜星。不听劝告,后果自负! 1.如何接线 GPS有两根线,要插上面图所示的两个接口。同时拔掉旁边的跳线帽&…

1806 jsp防疫物资销售管理系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 防疫物资销售管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助采用了java设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.…

LabVIEW车轮动平衡检测系统

LabVIEW车轮动平衡检测系统 随着汽车行业的快速发展,车轮动平衡问题对乘坐舒适性、操控稳定性及安全性的影响日益凸显,成为了提高汽车性能的一个关键环节。传统的检测系统因精度低、成本高、操作复杂等问题,难以满足现代汽车行业的需求。开发…

如何理解Spring Boot自动配置原理和应用?

我们知道,基于Spring Boot,我们只需要在类路径中引入一组第三方框架的starter组件,就能在Spring容器中使用这些框架所提供的各项功能。这在当下的开发过程中已经习以为常,但在Spring Boot还没有诞生之前却是不可想象的。如果我们使…

Python散点图矩阵代码模版

本文分享Python seaborn实现散点图矩阵代码模版,节选自👉嫌Matplotlib繁琐?试试Seaborn! 散点图矩阵(scatterplot matrix)展示原始数据中所有变量两两之间关系,可以规避单一统计指标的偏差&…

【一步一步了解Java系列】:类与对象的联系

看到这句话的时候证明:此刻你我都在努力加油陌生人个人主页:Gu Gu Study专栏:一步一步了解Java 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者:小闭 对…

java 对接农行支付相关业务(二)

文章目录 农行掌银集成第三方APP1:掌银支付对接快e通的流程1.1 在农行网站上注册我们的app信息([网址](https://openbank.abchina.com/Portal/index/index.html))1.2:java整合农行的jar包依赖1.3:把相关配置信息整合到项目中1.4:前端获取授权码信息1.5:后端根据授权码信…

广东省旗袍文化促进会正式批复为世界酒中国菜活动的指导单位

广东省旗袍文化促进会正式批复荐酒师国际认证(广州)有限公司成为“世界酒中国菜”系列活动的指导单位 近日,广东省旗袍文化促进会正式批复荐酒师国际认证(广州)有限公司,成为备受瞩目的“世界酒中国菜”系…

怎样修改库包的文件名?

python中,安装crypto模块时,会遇到crypto文件夹都是小写字母的情况,引用时又是首字母大写,这个时候,需要把库包文件名首字母改为大写字母。windows中一般的文件名命名中字母的大小写是不进行区分的,但是在p…

linux中使用gdb调试c++的dump文件

1 查看系统是否开启dump生成 0表示没开启 ulimit -c 但是这个只是针对当前这个连接,如果想要永久修改可以修改配置文件:vim /etc/profile,然后添加上面的命令ulimit - c unlimited.然后执行source /etc/profile或者重启使刚刚的配置可以…

12.2 通道-阻塞与流程控制、通道型函数、退出通道

阻塞与流程控制 通常在并发程序中要尽力避免阻塞式操作,但有时又需要让代码暂时处于阻塞状态,以等待某种条件、信号或数据,然后再继续运行。 对于无缓冲通道,试图从无人写入的通道中读取,或者向无人读取的通道中写入…

蓝牙Mesh模块多跳大数据量高带宽传输数据方法

随着物联网技术的飞速发展,越来越多的设备需要实现互联互通。蓝牙Mesh网络作为一种低功耗、高覆盖、易于部署的无线通信技术,已经成为物联网领域中的关键技术之一。在蓝牙Mesh网络中,节点之间可以通过多个跳数进行通信,从而实现大…