大模型入门-大模型基础知识3
1.4 Transformer-Encoder
2017年谷歌提出 Transformer 模型,迅速成为自然语言处理(NLP)领域的主流模型,直到今天 。它的设计初衷是 seq2seq 的模型结构,用以序列预测序列的任务,例如机器翻译 。
2018年谷歌使用 Encoder 模型作为基础,提出 Bert 模型;同在2018年,OpenAI 基于 Decoder 推出 GPT1,累积4年后从量变到质变,推出 ChatGPT 对话模型,引爆全球,开启了新一轮 AI 热潮 。
我们先从 Encoder 讲起。Encoder 主要由以下5部分组成 :
- Embedding 词嵌入层
- Multi-head Self-Attention
- 残差连接和 Layer Normalization
- feed forward
- 残差连接和 Layer Normalization
1.4.1 Embedding 词嵌入层
以 Bert 为例,它的输入有3个部分,最终输入是将这3个向量直接相加 :
Token Embeddings(字向量):代表单个字或词的向量 。
Segment Embeddings(部分编码):因为 Bert 在训练时有一种模式是输入两句话来判断它们的相似度,部分编码的作用就是区别每个字属于哪句话(例如前一句标为A,后一句标为B) 。
Position Embeddings(位置编码):因为在计算注意力矩阵时是直接相乘,模型本身无法捕捉顺序序列的能力(即打乱句子结构会得到类似结果) 。引入位置编码特征就能区分不同位置的单词了 。
位置编码公式 :
PE(pos,2i)=sin(pos/100002i/dmodel)PE_{(pos,2i)}=sin(pos/10000^{2i/d_{model}})PE(pos,2i)=sin(pos/100002i/dmodel)
PE(pos,2i+1)=cos(pos/100002i/dmodel)PE_{(pos, 2i+1)}=cos(pos/10000^{2i/d_{model}})PE(pos,2i+1)=cos(pos/100002i/dmodel)
💡 延伸:位置编码的意义是什么?
自注意力机制本身无法感知序列顺序,必须通过位置编码显式注入词序信息,以区分词语的位置关系 。比如“我不爱你”和“不我爱你”,如果不加位置编码,这两句表达的词意将被模型视为一致 。绝对位置编码的核心设计理念是在每个输入序列的元素上添加一个固定的位置向量,与输入数据无关 。
(注:Transformer 原始输入层只有2个,即 Token Embeddings + Position Embeddings 。)
1.4.2 Multi-Head Attention 多头注意力机制
Transformer 的核心就是多头注意力机制,其核心计算公式如下 :
Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(\frac{QK^{T}}{\sqrt{d_{k}}})VAttention(Q,K,V)=softmax(dkQKT)V
综合后的 embedding(如维度 L×768L \times 768L×768)会通过不同的线性层变为 QQQ、KKK、VVV 三个矩阵 。
核心设计原理解析
-
为什么 Q、K、V 要用不同的值?
使 QQQ、KKK、VVV 不相同可以保证在不同空间进行投影,增加了表达能力,这样计算得到的 attention score 矩阵的泛化能力更高 。 -
计算流程:
得到3个矩阵后,QQQ 和 KKK 的转置相乘形成自注意力矩阵,再除以 dk\sqrt{d_{k}}dk,然后进行 Softmax 使每行的和为1 。最后用自注意力的结果乘矩阵 VVV,用每个字的权重对每个字的特征进行提纯并加权求和 。 -
为什么要除以 dk\sqrt{d_{k}}dk?
除以 dk\sqrt{d_{k}}dk 的本质是控制高维空间中点积运算的方差,把注意力矩阵变为标准正态分布,确保 Softmax 输入的数值稳定性,从而优化梯度传播与模型收敛效率 。 -
Softmax 的意义是什么?
归一化之后的结果会更加稳定,以便反向传播获取平衡的梯度 。
最终得到的输出维度与输入维度一致,且自注意力机制在计算方面最大的优点就是可以并行计算 。
1.4.3 残差连接和 Layer Normalization
本层的输入会先进行 Dropout,然后再进行残差连接 。
残差连接通俗可以理解为“至少不比上次的差”,它本质的作用是能缓解梯度消失问题,因为在训练时可以使梯度直接走捷径反传到最初始层 。
Layer Normalization 与 Batch Normalization 有什么不同?
Batch Normalization (BN) 会对 Batch 内同一位置的特征计算均值与方差进行标准化,这在 NLP 中会存在两个致命问题 :
-
PAD 干扰: Batch 内句子实际长度不一致,BN 在同一位置进行标准化会被 PAD(填充符)干扰,导致一个 token 的词向量分布发生变化,破坏原有含义 。
-
上下文一致性受损: 在不同语境中,同一 token 的 Norm 处理受随机 batch 内不同数据的影响,破坏了语言建模中 token 向量的上下文一致性 。
Layer Normalization 的解法:
LN 是对每个 token 的向量独立进行标准化操作,不同的 token 互不影响 。它可以独立处理单个样本,完全不受序列长度变化的影响 。
1.4.4 feed forward (前馈神经网络)
前馈神经网络其实就是 linear 层,使用了两层全连接进行了维度的变化 。
典型的操作流程是:先升维(例如从 768 变为 3072),再使用激活函数(如 GELU/GLUE)进行非线性变化,最后进行降维输出(从 3072 变回 768) 。
1.4.5 残差连接和 Layer Normalization
在前馈神经网络处理完数据后,再一次加入残差连接和 Layer Normalization,其结构与 1.4.3 节完全相同,从而完成一个完整 Encoder 块的计算闭环 。
1.5 Transformer-Decoder 解析
在了解了 Transformer 的 Encoder 之后,我们自然要深入探讨它的另一半——Decoder(解码器)。Decoder 在文本生成、机器翻译等任务中扮演着至关重要的角色。
1.5.1 Decoder 与 Encoder 的核心不同点

虽然 Decoder 和 Encoder 在结构上有许多相似之处,但为了实现“生成”这一目标,Decoder 进行了几项关键的改造:
双重注意力机制: Decoder 内部包含了两个 Multi-Head Attention(多头注意力)层 。
-
第一个 Multi-Head Attention 层引入了 Masked(掩码)操作 。
-
第二个 Multi-Head Attention 层(通常称为 Cross-Attention)的 KKK、VVV 矩阵是由 Encoder 计算得到的,而 QQQ 则是使用上一个 Decoder block 的输出进行计算的 。
输出概率: Decoder 的最后连接着一个 Softmax 层,用于计算下一个翻译/生成单词的概率分布 。
1.5.2 深入理解 Mask Multi-Head Attention
理解 Decoder 的关键在于理解 Mask(掩码)机制:
Encoder 的全局视角: 在 Encoder 中是没有 Mask 的,只有 Padding。这是因为 Encoder 的任务是理解文本,它可以拥有“上帝视角”看清全局信息,并进行并行计算来理解整句话的语义 。
Decoder 的因果视角: Decoder 中不仅有 Padding,还必须使用 Mask 。Mask 掩码的作用是确保模型在预测时,只能看到当前 token 及其左侧的 token,而绝对不能提前“偷看”到右侧未来的 token 。因为这种严格的先后顺序依赖,它也被称为 Causal LM(因果语言模型) 。
1.5.3 GPT 的制胜法宝:Decoder-Only 架构

细心的读者可能会发现,当前大火的 GPT 系列等大语言模型,使用的 Decoder-Only 架构与原始 Transformer 中的 Decoder 还是略有不同的 。
精简结构: GPT 使用的 Decoder-Only 架构剔除了与 Encoder 交互的交叉注意力层,只保留了掩码自注意力层(Masked Multi-Head Attention)和前馈网络(Feed Forward)两部分 。
为何独霸生成领域? Decoder-only 模型通过自回归生成机制和因果掩码机制,天生更适合生成任务 。它能够创造性地、一步一步地预测并生成连贯的文本 。相比之下,Encoder-only 模型虽然理解能力强,但缺乏这种自回归的生成能力,因此在文本生成领域,Decoder-only 架构变得更受欢迎并成为了主流 。
1.5.4 完整版 Transformer-Decoder 在多模态中的应用

虽然纯文本大模型多采用 Decoder-Only,但在如今热门的多模态大模型(如处理图文结合的任务)中,无删减版的交叉注意力(Cross-Attention)机制又焕发了新生:
-
在多模态大模型中,文本部分仍然会使用因果自注意力机制生成特征作为 QQQ(Query),然后传入 Cross-Attention 层 。
-
与此同时,图片或其他模态的数据经过专门的编码器(Image Encoder)编码后,也会传入这个 Cross-Attention 层,作为 KKK(Key)和 VVV(Value),以此来保留图像的全局特征 。
动态提取: 通过这种机制,模型能够根据当前生成的文本状态(QQQ),动态地从全局图像特征(K,VK, VK,V)中提取相关的视觉信息,实现图文的完美对齐与融合 。
print(hello)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)