带你搞懂 Transformer 的编码逻辑深度解析|Duuu笔记
必须剖析Transformer编码器机制:一、词嵌入与位置编码相加注入词序;二、多头自注意力并行建模多类依赖;三、前馈网络引入非线性增强;四、多层堆叠实现层级语义演化;五、掩码机制约束信息流向。
如果您希望深入理解 AI 语言模型如何将输入文本转化为可计算的向量表示,并准确捕捉词序、语法与语义关系,则必须剖析 Transformer 架构中编码器(Encoder)的核心运作机制。以下是解析 Transformer 编码逻辑的关键步骤:
一、理解词嵌入与位置编码的协同作用
Transformer 不依赖循环或卷积结构,因此无法天然感知词序;它通过将词嵌入(Token Embedding)与位置编码(Positional Encoding)相加,为每个词注入其在序列中的绝对与相对位置信息,使模型具备处理变长序列的能力。
1、将输入句子按词元(token)切分,例如“AI 模型很强大”切分为 [“AI”, “模型”, “很”, “强大”, “
”]。
2、查表获取每个词元对应的 d_model 维向量(如 512 维),形成词嵌入矩阵。
3、生成预设公式计算的位置编码矩阵:对偶数维度使用 sin 函数,奇数维度使用 cos 函数,频率随位置指数衰减。
4、将词嵌入矩阵与位置编码矩阵逐元素相加,得到含位置信息的初始表示
二者必须维度相同且直接相加,不可拼接或替换
。
二、多头自注意力机制的并行计算路径
自注意力允许每个词元动态聚合上下文中所有词元的信息,而“多头”设计则让模型在不同子空间中独立学习多种依赖关系(如语法主谓、指代消解、修饰限定等),提升表征鲁棒性。
1、对输入矩阵 X 分别乘以三组可学习权重矩阵 W
Q
、W
K
、W
V
,得到查询(Q)、键(K)、值(V)矩阵。
2、将 Q 与 K
T
点积后缩放(除以 √d
k
),再经 softmax 得到注意力权重矩阵 A。
3、用 A 加权求和 V,输出单头注意力结果。
4、重复上述过程 h 次(如 h=8),各头使用独立参数,最后将 h 个输出拼接并通过线性层投影,得到最终多头输出
每个头关注不同语义粒度,拼接前不得归一化或平均
。
三、前馈神经网络的非线性增强结构
在自注意力输出之后接入两层全连接网络,引入强非线性变换能力,弥补注意力机制本身线性组合的局限,强化特征抽象与模式识别深度。
1、将多头注意力输出送入第一层线性变换,映射至隐藏层维度(通常为 4×d_model)。
独响
一个轻笔记+角色扮演的app
下载
2、应用 GELU 激活函数进行非线性映射。
3、再经第二层线性变换,还原至原始维度 d_model。
4、该模块前后均配有残差连接与 Layer Normalization,确保梯度稳定传播
LayerNorm 在特征维度上归一化,而非 batch 维度
。
四、编码器堆叠中的层级语义演化
单个编码器层仅能建模局部交互,多层堆叠使高层输出逐步融合更广范围的上下文,实现从词法→短语→句法→语义的渐进式抽象。
1、将输入序列依次通过 N 层(如 N=6)相同结构但参数独立的编码器模块。
2、每一层输出作为下一层输入,且每层内部均包含自注意力子层与前馈子层两个带残差的子块。
3、第 L 层输出的任一位置向量,已隐式编码了从第 1 层到第 L 层逐步聚合的跨距信息
层数越多,感受野越大,但并非线性叠加,存在信息稀释风险
。
五、掩码机制在编码阶段的隐式约束
标准 Transformer 编码器默认允许任意位置间双向交互,但实际任务中需通过掩码控制信息流向,确保训练目标与推理逻辑一致,尤其在编码-解码联合架构中至关重要。
1、若编码器用于仅编码任务(如 BERT),不启用任何掩码,所有位置可自由 attending。
2、若编码器与因果解码器联合训练(如 T5 的 encoder-decoder 模式),编码器仍无掩码,但需确保其输出不泄露未来 token 信息给解码器侧。
3、在特定变体(如 Encoder-Only 自回归建模)中,需手动添加上三角掩码于 QK
T
矩阵,强制单向依赖
掩码必须在 softmax 前施加,且值为 -∞(非 0)以消除非法位置影响
。
