从零理解Transformer:自注意力机制核心原理深度剖析

m
marvis

一、Transformer的革命性突破

2017年,Google在论文《Attention Is All You Need》中提出Transformer架构,彻底颠覆了序列建模范式。传统RNN/LSTM在处理长序列时面临两大困境:梯度消失导致无法捕获远距离依赖,时序依赖性使得无法并行计算。Transformer通过自注意力机制一举解决这两个问题。

二、自注意力机制的数学本质

核心公式:Attention(Q,K,V) = softmax(QK^T / √d_k) · V

三个矩阵的含义:

  • Q(Query):查询向量,代表"当前位置在寻找什么信息"
  • K(Key):键向量,代表"每个位置能提供什么信息"
  • V(Value):值向量,代表"每个位置的实际内容"

除以√d_k(缩放因子)是关键的工程技巧:当d_k较大时,点积QK^T的方差会增大,导致softmax输出趋近于one-hot分布,梯度趋近于零。缩放点积注意力有效解决了这个梯度消失问题。

三、Multi-Head Attention:多角度理解

单头注意力只能捕获一种关系模式。Multi-Head Attention通过多个并行的注意力头,让模型同时关注不同表示子空间的信息:

  • 头1可能关注语法结构(主语-谓语关系)
  • 头2可能关注语义关联(同义词、指代关系)
  • 头3可能关注位置邻近(相邻词的局部模式)

每个头的维度 d_head = d_model / h,计算量与单头相当,但表达能力大幅提升。研究显示,去掉任何一个头都会导致模型性能下降,证明多头机制并非冗余。

四、位置编码:时间的维度

Transformer本身不具备序列顺序感知能力——它看到的是"词袋"而非"句子"。位置编码解决了这个问题。原始论文使用正弦/余弦函数:

方法原理优点缺点
SinusoidalPE(pos,2i)=sin(pos/10000^(2i/d))可外推到训练时未见过的长度固定不可学习
可学习位置编码随机初始化后训练灵活适应任务无法外推
RoPE(旋转位置编码)通过旋转矩阵注入位置信息相对位置建模,可外推实现较复杂
ALiBi在注意力分数上加线性偏置极简实现,外推能力强精度略低于RoPE

2025年主流大模型普遍采用RoPE(如LLaMA系列、Qwen系列),因其在长文本外推方面的优异表现。

五、完整架构与训练要点

5.1 Encoder-Decoder vs Decoder-Only

  • Encoder-Decoder(原始Transformer、T5):Encoder编码源序列,Decoder自回归生成目标,适合翻译、摘要等seq2seq任务
  • Decoder-Only(GPT系列、LLaMA):仅用Decoder,通过因果掩码实现自回归生成,已成为大模型主流架构
  • Encoder-Only(BERT):双向注意力,适合理解类任务

5.2 训练技巧

  • 残差连接 + Layer Normalization:确保梯度畅通,Post-LN到Pre-LN的转变是训练大模型的关键
  • 学习率预热(Warmup):前几千步线性增加学习率,避免训练初期的不稳定
  • 标签平滑(Label Smoothing):防止模型过度自信,提升泛化能力

相关阅读:NLP技术全景 | MoE混合专家架构详解 | 长上下文技术突破