Transformer深入浅出
- 简介
- 前提知识
- 架构
- 结构块
-
- 输入
-
- [词嵌入(Word Embedding)](#词嵌入(Word Embedding))
- [位置编码(Positional Encoding)](#位置编码(Positional Encoding))
- 自注意力机制(Self-Attention)
- [掩码注意力机制(Masked Self-Attention)](#掩码注意力机制(Masked Self-Attention))
- 交叉注意力机制(Cross-Attention)
- [层归一化(Layer Normalization, LN)](#层归一化(Layer Normalization, LN))
- [前馈神经网络(Feedforward Neural Network, FFN)](#前馈神经网络(Feedforward Neural Network, FFN))
- 模块概述
- 应用
简介
Transformer 由编码器(Encoder)和解码器(Decoder)两大部分组成,各自由多层相同模块堆叠而成。左边为编码器,右边为解码器。

我们拆开来看就是:

前提知识
词袋

词袋其实就是将输入文本数据进行数值转化,变成一个独热向量:

词嵌入

注意力机制

分词器


架构
主要组成
整体分为两块,编码器和解码器:

运行流程





Transformer的推理过程

Transformer的训练过程

结构块
输入
词嵌入(Word Embedding)
Transformer的输入是词嵌入,让表达矩阵维度下降,也让其通过数值能表示了数值关系:

位置编码(Positional Encoding)
对于词嵌入后,我们没有时间序列或者说位置的信息,所以我们需要添加位置编码进行融合,然后输入给Transformer中去。(Transformer的d为512,这里图片为60是一个可视化示例)

自注意力机制(Self-Attention)
其作用是:
- 计算输入x之间的关联程度
- 关联程度提取x的有用信息
- 输出包含不同注意力分配的信息


单头自注意力机制(Single-Head Attention)



详细计算流程
- 方法一理解:
表达a1和ai的关联程度 ,获得相似度得分:

我们再与v相乘融合得到b1,得到Attention输出:

- 方法二理解:

其简化计算过程就为:

多头自注意力机制(Multi-HeadAttention, MHA)

详细计算流程
获取MHA

自注意力机制的优化
在Transformer的自注意力机制上进行的优化,主要是对于训练参数共享等的调整。
多查询注意力机制
其核心思想是不再让每个注意力头都拥有独立的键、值矩阵,而是改为所有注意力头共享一个同一个键、值矩阵,这样整个网络层只需保留一组键值投影权重矩阵。

分组查询注意力机制
允许多组键、值矩阵,相比于多查询注意力机制有更好的效果,使用多查询注意力机制的论文,会说明注意头的数量和注明键、值矩阵的分组数量。

稀疏注意力机制
这种机制不会用于所有网络层。假设第一层采用标准自注意力,当他到第七个token时能查看到之前的所有token(这叫全连接注意力),计算成本很高。而只关注最近的4、16或32个的这种机制被称为稀疏注意力。

其可视化如下,b图为跨步注意力机制(位置只能关注最近的3-4个token位置、也可添加设置特定位置);c图为固定模式注意力(即在上下文序列中设定固定位置,比如处理到第四个token时,只能关注第四个到当前token的位置)

掩码注意力机制(Masked Self-Attention)
如果是多头的我们称之为Masked Multi-HeadAttention,简写为MMHA。
填充掩码
其中黑色块就是我们填充为0的内容;有这个的愿意是同批次训练长度必须一致,否则无法做并行计算。所以我们在进行模型训练的时候尽量让同样序列长度在一个批次里进行训练,这样可以避免填充计算。

因果掩码
因果掩码注意力机制是以注意力机制为基础,屏蔽未来位置,词元只关注已经出现的:

训练过程
在自注意力机制的基础上,添加了Mask实现掩码,实现后续信息的屏蔽

推理过程

交叉注意力机制(Cross-Attention)
Q来源于解码器,KV来源于编码器:
- 从计算的角度来看是:


- 从矩阵的角度来看:

层归一化(Layer Normalization, LN)

前馈神经网络(Feedforward Neural Network, FFN)
前馈神经网络(FFN)是一种无循环的多层神经网络,信息从输入到输出单向流动。他是一种结构类型而不是特定网络,其里面的每个函数或者块是可以换的,比如第二个块处理为RNN或者CNN都可以。

模块概述




应用
表征模型与生成式模型
编码器(表征模型)和解码器(生成式模型):

类似论文阅读技巧
对于其他基于Transformer修改的论文,我们怎么可视化思维理解模型架构
- 8B:代表80亿参数;
- Layers:代表32个层级,即32个Transformer块
- Model Dimension:代表模型维度,即流经转换器的向量维度的长度
- FFN Dimension:前馈神经网络的维度
- Attention Heads:代表注意力头的个数
- K/Value Heads:代表使用分组注意力机制,配备8个键值头
- Vocabulary Size:词汇表大小,即分词器大小
- Positional Embeddings:位置编码,比如采用RoPE(旋转位置编码)

论文复现
可以查看仓库Transformer查看论文复现及其示例。