Transformer(课程笔记)

devtools/2024/10/15 18:30:03/

一:Motivation

RNN需要顺序的执行,不利于并行计算。

RNN的变体例如GRU、LSTM等需要依靠注意力机制解决信息瓶颈等问题。

抛弃RNN结构,提出了Transformer结构。

Transformer整体架构

二: 输入层(BPE,PE)

BPE:Byte Pair Encoding

解决OOV(out of vocabulary)问题。

PE:Positional Encoding

因为与RNN不同的是Transformer不能通过对文本处理的先后顺序来建模每个单词的位置关系,因此在输入的enbedding上加入一个位置编码

三:Encoder Block

每一个Encoder Block包含两个子层:

  •  Multi-Head Attention多头注意力层;
  •  Feed-Forward Network两层的ML。

两个tricks:

  •  残差连接;
  •  Layer normalization:将输入的向量变成均值为0方差为1的分布,缓解梯度消失和梯度爆炸的问题。

1. Attention Layer介绍:

Dot-Product Attention:与RNN中的注意力机制不同,使用了QKV三个向量。

文章使用的是Scaled Dot-Product Attention:

如果不使用Scaled,QK的方差会随着dk的增加而变大,从而进行softmax后概率分布会变得很尖锐,有些位置会很接近1,有些位置很接近0。结果会使得梯度越来越小,不利于参数的更新。

除以一个根号dk后可以保持方差为1。

为什么叫自注意力:让token自主选择关注哪些token。因为QKV实际上同一个的向量,都来自于文本的表示向量,这样就没法进行学习了。因此是使用不同的Liner层把QKV映射到不同的空间,学习的是每个Liner层各自的权重。

多头注意力机制:将QKV使用多组Liner层进行映射,计算注意力的输出,然后对各组计算结果进行拼接,然后通过线性层整合,就得到了多头注意力机制输出结果。

四:Decoder Block

跟Encoder比有两个变换:

1.第一个Attention Layer加了Masked操作,为了让预测当前词时不能看后面的词,因此把QK相乘后的矩阵上三角部分变为负无穷大,然后负无穷大经过softmax后=0。

2.第二个Attention Layer:Query向量来自于上一个Attention的输出,而Key和Value来自于Encoder最后一层的输出(我的理解是:这里的最后一层输出能够表示输入所有的信息的原因是用了多头注意力机制然后进行了整合,而RNN中单使用最后一层输出是不可行的,会出现信息瓶颈的问题的,不知道是不是这样理解)。

 

五:优缺点

1.优点:

  • 在NLP任务中有很好的效果
  • 适合并行计算
  •  能够建模token和token之间的关系
  • 成为了预训练模型的主要框架

2.缺点

  • 优化过程困难
  • 文本长度为n,复杂度为n方,不适合输入过长的文本

参考课程: 【【全748集】清华大佬终于把AI大模型(LLM)讲清楚了!通俗易懂,2024最新内部版!拿走不谢,学不会我退出IT圈!】https://www.bilibili.com/video/BV1rS411F735?p=31&vd_source=30a18e1c6984e8eeef0cf4461d1f03e9


http://www.ppmy.cn/devtools/97918.html

相关文章

Vue:Treeselect基本使用

官网 属性配置 属性含义备注:options数据列表数据格式一定要与下面的对应起来:multiple是否多选当多选的时候&#xff0c;接收参数一定要定义成列表类型searchable可搜索:limitText显示每一组的数量:disable-branch-nodes禁止选中父级 案例 <template><div class&…

Java OkHttp使用(二)

文章目录 引言使用 OkHttp 发送回调其他 引言 记录一下 OkHttp 的使用&#xff1b;OkHttp 异步发送回调请求&#xff0c;增加回调失败重试。 使用 OkHttp 发送回调 /*** 回调重试类*/ Data public class CallBackRetryData {/*** 回调信息JSON*/private JSONObject bodyRequ…

c++--类(上)

C之类&#xff08;上&#xff09; 一、类的定义1.1 类定义格式1.2 访问限定符1.3 类域 二、实例化2.1 实例化的概念2.2 对象大小 三、this指针 一、类的定义 1.1 类定义格式 1、class为定义类的关键字&#xff0c;{}中为类的主体&#xff0c;注意类定义结束时后⾯分号不能省略…

「OC」探索CALayer:基础知识与实用技巧简要介绍

「OC」探索CALayer&#xff1a;基础知识与实用技巧简要介绍 文章目录 「OC」探索CALayer&#xff1a;基础知识与实用技巧简要介绍前言认识CALayerCALayer的相关属性 UIView和CALayer区别联系创建UIView和CALayer的原因 开始创建CALayer视图层级CALayers 和 Sublayersposition与…

CI/CD

目录 1.什么是CI/CD? 2.Gitlab仓库部署 3.部署Jenkins 3.1 使用jenkins拉取代码 3.2 对代码进行编译、打包 4.部署tomcat服务器 1.什么是CI/CD? 通俗来说就是启动一个服务&#xff0c;能够监听代码变化&#xff0c;然后自动执行打包&#xff0c;发布等流程: CICD 是持…

通过Docker部署Synapse服务器

今天我们在阿贝云免费服务器上进行部署测试。阿贝云免费服务器&#xff0c;简直就是IT界的一颗明星&#xff01;1核CPU、1G内存、10G硬盘、5M带宽&#xff0c;简直就是一个不错的免费服务器选择。 首先&#xff0c;让我们简要介绍一下使用到的Docker和Synapse软件。Docker是一…

某系统存在任意账户凭据窃取漏洞

世人都晓神仙好&#xff0c;惟有功名忘不了&#xff01;古今将相今何在&#xff1f;荒冢一堆草没了。 漏洞描述 某系统存在任意账户凭据窃取漏洞&#xff0c;攻击者使用任意账号登录后访问特殊的Url即可获取所有用户的账号和密码 漏洞复现 登录后台(存在访客用户默认账号密…

美股收涨,半导体板块领涨;苹果iPhone出货预测上调

市场概况 在昨夜的交易中&#xff0c;美股三大股指全线收涨。道琼斯工业平均指数上涨1.39%&#xff0c;纳斯达克综合指数上涨2.34%&#xff0c;标准普尔500指数上涨1.61%。值得注意的是&#xff0c;英伟达股票涨幅近4%&#xff0c;推动了科技股的整体表现。美国十年期国债收益…