transformer原理

news/2024/9/29 0:20:38

 

Transformer注意力架构原理
输入层
embedding词嵌入向量
将文本中词汇的数字表示转变为向量表示,在这样的高维空间捕捉词汇间的关系
语义相近的词语对应的向量位置也更相近
每个词先通过词典转换成tokenId,在把tokenId转化为一个512纬的向量
位置编码
将每个词的位置向量(通过位置编码矩阵算出)增加到文本嵌入层输出向量中,这样输入层的向量就有了位置的信息
编码层
注意力层
注意力流程
Q通过K,V挖掘到KV中更重要的权重,把Q生成一个新的V
通过Q通过K在张量层面获取注意力(占比),在把占比乘以V就获得了新的张量作为获得注意力的张量
Q和K主要是为了获得占比
注意力机制公式
QKt是矩阵Q乘矩阵K的转置
处以√dk解决梯度消失的问题
softmax是计算出通过矩阵运算后的Q对于K的占比
最后乘以V是通过比例和值的乘运算获得最终的结果
自注意力
自注意机制的Q=K=V,通过转置计算,每个词都和其他所有词进行了计算
他的优点还在于,可以直接跨越一句话中不同距离的词,远距离学习到序列的只是依赖和语序结构
多头注意力机制
将句子词向量切分成多个部分每个部分分别进行注意力处理,最后再拼接到一起
多头可以在更细致的层面上提取不同的head的特征,提取特征的效果更好
规范化层norm
它是所有深层网络模型都需要的标准网络层
随着网络层数的增加,通过多层的计算后参数可能开始出现过大或过小的情况,这样可能会导致学习过程出现异常,模型可能收敛非常的慢. 因此都会在一定层数后接规范化层进行数值的规范化,使其特征数值在合理范围内
子层连接结构(残差连接)add
残差连接是2015年提出的论文解决神经网络深度过大导致的问题
神经网络模型在深度到达一定程度后,会造成梯度消失、梯度爆炸等问题
将浅层的输出和深层的输出求和,作为下一阶段的输入
通过残差连接这样一个简单的处理,成功将上百层的模型得以收敛,从而在分类任务中达到了更高的精度,在2016年resnet的改进中,模型的深度达到了1000层
Add & Norm
Add表示残差连接,Norm表示规范化层
对于每一个EncoderBlock,两个子层后面都有Add & Norm
对于每一个DecoderBlock,三个子层后后面都有Add & Norm
残差连接可以让信息传递的更深,增强了模型的拟合能力
规范化层,可以让模型减少参数过大过小的问题,防止模型收敛慢的问题
前馈全连接层Feed Forward
在Transformer中前馈全连接层就是具有两层线性层的全连接网络
考虑注意力机制可能对复杂过程的拟合程度不够, 通过增加两层网络来增强模型的能力
前馈全连接层由两个线性变化组成,中间有一个Relu激活函数
原始论文中的前馈全链接层输入和输出的纬度都是512,层内连接纬度是2048,均采用4倍的关系
前馈全链接层作用:单纯的多头注意力机制不足以提取到理想的特征,因此增加全链接层来提升网络的能力
编码器
Encoder部分是6个一模一样的Encoder Block层层堆叠在一起(网络串行)
解码层
第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接
多头自注意力层:需要做掩码,来遮掩未来的信息,提升模型的能力
对于生成类模型就是一个字一个字的崩出来,不能提前给模型透露未来的信息,如果透露了,他预测的能力会下降
第二个子层连接结构包括一个多头注意力子层和规范化层以及一个残差连接
多头注意力层:Q来自于Decoder端,KV来源于Encoder端
为什么要让原始文本(编码器输入)作为K V,翻译文本作为Q呢
训练过程中,要让目标文本在原始文本中提取到更重要的信息
预测过程中,更是要让生成文本在原始文本中提取到更重要的信息
谁更重要,谁信息量更大,谁就要在K V(通常K V是一样的)
这样设计的目的是为了让Decoder端的token能够给予Encoder端对应的token更多的关注
第三个子层连接结构包括一个前馈全连接子层和规范化层以及一个残差连接
输出层
全连接线性层+softmax激活函数获得最终的结果
Transformer相比于传统RNN的优势
Transformer能够利用分布式GPU进行并行训练,提升模型训练效率
Encoder并行化
Embedding层(输入)、前馈全链接层、规范化残差连接层,都可以进行并行化
从Embedding层到注意力层之间因为存在依赖关系,这两个阶段无法并行
在注意力层因为采用了矩阵运算,可以一次性计算所有主力张量的计算,数学上也是一种并行化的体现
Encoder在训练和预测阶段都可以实现并行化
Decoder并行化
Embedding层(输入)、前馈全链接层、规范化残差连接层,都可以进行并行化
在注意力层因为采用了矩阵运算,可以一次性计算所有主力张量的计算,数学上也是一种并行化的体现
Decoder在训练阶段可以并行化阶段
Decoder在预测阶段不可并行化阶段
在分析预测更长的文本时, 捕捉间隔较长的语义关联效果更好
基于注意力的机制设计本身就能跨越较长文本,提取长文本特征,并通过注意力权重提现到embedding中

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

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

相关文章

Kali Linux 安装教程

Kali Linux 安装教程 下载镜像文件 Kali官网下载 访问Kali官网(https://www.kali.org/ ),根据下图所示进行下载清华大学开源软件镜像站下载 访问清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn/ ),根据下图所示进行下载搜索关键字Kali,选择Kali-images安…

RK3588J + 麒麟系统,“软硬件”全国产——让您的产品更具竞争力!

银河麒麟嵌入式操作系统简介 银河麒麟嵌入式操作系统V10是面向物联网及工业互联网场景的安全实时嵌入式操作系统,具备信息安全、多域隔离、云边端协同、多样性算力支持等特点,可满足嵌入式场景对操作系统小型化、可靠性、安全性、实时性、互联性的需求。银河麒麟嵌入式操作系…

跨区域文件管控解决方案,一文了解!

跨区域文件管控是一个涉及在不同地域或区域之间管理和控制文件的过程,它包括安全性、合规性和管理效率等多个方面。以下是一些关键的考量因素:1.安全性:确保在传输过程中文件不被截获、篡改或泄露。使用加密技术保护文件,并确保传输通道的安全。 2.合规性:遵守不同地区的数…

请问我用cpca三方库解析地址,但是总会漏一部分解析不出来?

大家好,我是Python进阶者。 一、前言 前几天在Python钻石交流群【逆光】问了一个Python数据处理的问题,问题如下:请问我用cpca三方库解析地址,但是总会漏一部分解析不出来,请问这个咋整呀?我处理了,就是还剩这14个,请问要咋处理呀? 二、实现过程 这里【瑜亮老师】给了…

第一讲

1.android四层 应用程序层,应用框架层,核心类库层,Linux内核层。字体用单位sp,布局大小用dp。 选择题:2. 在下列选项中,关于Android工程中的assets目录的说法正确的是(B) B、主要存放一些文件资源,这些文件会被原封不动的打包到APK文件中 判断题: 3. Android 工程中…

室外土方和挖方---院里的室外属于建筑,马路上才属于市政

单管:22定额 单管按照土建的计算规则来(再小区范围内属于建筑,出了小区才属于市政) 多管建筑没有计算规则,可以使用市政的,但是回填时,计算规则还是建筑(管道大于200,计算管道体积(市政-回填))(管道大于500,计算管道体积(建筑-回填))多管:12定额

H3C服务器重装系统时出现Multiple LVM volume groups with the same name(VolGroup00)

问题描述:在对H3C服务器进行系统重装时出现Multiple LVM volume groups with the same name(VolGroup00)显示有多个相同的LVM卷组(内容如下)解决方法:进入RAID卡查看对应的配置,尝试把RAID格式化或解散重组解决在如下Manager Arrays下,找到对应的RAID组进行删除,然后选…

SAP: ABAP消息类型

SAP 消息类型有六种,分别 S: 成功; E:错误; W:警告; I: 消息框 ; A: 错误框 ; X: 系统错误。1、自定义 消息类 ZMSG ; 如: 001: 没有数据 2、ABAP程序 REPORT ZTEST01 MESSAGE-ID ZMSG . WRITE 第一个消息例子. MESSAGE S001. -----效果图: SAP 消息类型有六种,分别…