Transformer(课程笔记)

news/2024/10/17 12:57:31/

一: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/news/1512364.html

相关文章

酒店定制门牌选购指南

在打造一家独具特色的酒店时,定制门牌可不仅仅是一个简单的标识,它更是酒店风格与品质的重要体现。以下是一份酒店定制门牌选购指南。 明确酒店的定位与风格。不同的风格决定了门牌的设计方向。如果是豪华酒店,可能需要选用材质上乘、工艺精湛…

【读书笔记】SRE:Google运维解密 第Ⅰ部分 概览

第Ⅰ部分 概览 第1章 介绍 系统管理员模式 研发团队和系统运维团队分属两个部门所带来的间接成本就没那么容易度量了,但是这些间接成本往往大得多。 Google的解决之道:SRE SRE就是让软件工程师来设计一个新型运维团队的结果。 目前来看,…

虹科免拆诊断案例 | 2012 款捷豹 XJ 车发动机怠速轻微抖动

障现象  一辆2012款捷豹XJ车,搭载3.0T发动机(型号为306PS),累计行驶里程约为14.7万km。车主反映,发动机怠速轻微抖动,感觉不舒服,为此先后更换过火花塞、点火线圈、喷油器及氧传感器等&#x…

Vue条件判断指令:v-if、v-else、v-else-if、v-show 指令

在程序设计中,条件判断是必不可少的技术。在视图中,经常需要通过条件判断来控制 DOM 的显示状态。Vue.js 提供了相应的指令用于实现条件判断,包括:v-if、v-else、v-else-if、v-show 指令。 1、v-if 指令 v-if 指令可以根据表达式…

全面讲解Vue中的toRaw函数

在Vue.js框架中,特别是在Vue 3中,响应式系统是核心功能之一。它允许开发者创建数据对象,这些对象能够自动响应数据的变化并更新DOM。然而,在某些情况下,我们可能需要将响应式对象转换为普通对象,以避免触发…

90.SAP ABAP - 声明变量 - 笔记

目录 声明方式1: 参照数据类型 全局类型,SE11-data element, structure, table type 标准类型,C,N,D,T,F,I,P,STRING 本地类型,程序里面的TYPES 声明方式2: 参照数据对象 赋值的3种方法 声明方式1: 参照数据类型 …

详解栈和队列

目录: 1.栈 2.队列 一、 栈(Stack) 1.1 概念: 栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素的操作。进行插入元素的一端叫做栈顶,另一端叫做栈底。从数据结构的角度出发,栈中…

ArcGIS Pro SDK (十二)布局 6 地图框和环绕要素

ArcGIS Pro SDK (十二)布局 6 地图框和环绕要素 文章目录 ArcGIS Pro SDK (十二)布局 6 地图框和环绕要素1 创建地图框并设置照相机2 创建图例3 从样式项创建比例尺4 从样式项创建指北针5 创建表格框6 创建地图框7 创建图例 28 从样式项创建指北针9 创建表格框10 创建比例尺…