Veni AI
深度学习

Transformer 架构与注意力机制:技术解析

对 Transformer 架构技术细节、自注意力机制、多头注意力以及构成现代大型语言模型基础的结构进行全面分析。

Veni AI Technical Team14 Ocak 20253 dk okuma
Transformer 架构与注意力机制:技术解析

Transformer 架构与 Attention 机制:技术解析

Transformer 架构由 Google 在 2017 年的论文 “Attention Is All You Need” 中提出,是现代人工智能的核心基础。所有主流大语言模型,例如 GPT、Claude 和 Gemini,都构建在这一架构之上。

在 Transformer 之前:RNN 和 LSTM 的局限

在 Transformer 时代之前,NLP 任务主要依赖循环神经网络(RNN)和长短期记忆网络(LSTM):

RNN/LSTM 的问题:

  • 需要顺序处理 → 无法并行化。
  • 在长序列中出现梯度消失/爆炸。
  • 难以学习长距离依赖关系。
  • 训练时间非常长。

Self-Attention 机制

Self-attention 是一种计算序列中每个元素与其他所有元素关系的机制。

数学公式

Attention(Q, K, V) = softmax(QK^T / √d_k) × V

参数说明:

  • Q(Query): 查询向量。
  • K(Key): 用于匹配的键向量。
  • V(Value): 实际信息向量。
  • d_k: Key 向量的维度。

逐步计算流程

  1. 投影: 输入 → Q、K、V 矩阵
1Q = X × W_Q 2K = X × W_K 3V = X × W_V
  1. 计算 Attention Scores: Q 与 K 的点积
scores = Q × K^T
  1. 缩放: 用 √d_k 进行缩放以保证梯度稳定
scaled_scores = scores / √d_k
  1. Softmax: 转换为概率分布
attention_weights = softmax(scaled_scores)
  1. 加权求和: 与 V 相乘
output = attention_weights × V

Multi-Head Attention

Transformer 不使用单一的 attention head,而是并行使用多个 head:

1MultiHead(Q, K, V) = Concat(head_1, ..., head_h) × W_O 2 3where head_i = Attention(QW_Q^i, KW_K^i, VW_V^i)

Multi-Head Attention 的优势

  • 在不同的表示子空间中学习。
  • 捕捉多种类型的上下文关系。
  • 更丰富的特征提取能力。

典型配置:

  • GPT-3:96 个 attention heads,d_model = 12288。
  • GPT-4:估计超过 120 个 heads。

Positional Encoding

由于 Transformer 以并行方式处理数据,需要加入位置信息以保存序列上下文:

正弦位置编码(Sinusoidal Positional Encoding)

PE(pos, 2i) = sin(pos / 10000^(2i/d_model)) PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

Rotary Positional Embedding(RoPE)

一种现代模型中使用的更先进方法:

f(x, pos) = x × e^(i × pos × θ)

RoPE 的优势:

  • 自然编码相对位置信息。
  • 更强的长序列外推能力。
  • 用于 GPT-NeoX、LLaMA 和 Mistral 等模型。

Feed-Forward Network

每个 attention 层后跟随一个 MLP 层:

FFN(x) = GELU(xW_1 + b_1)W_2 + b_2

典型维度:

  • d_model = 4096
  • d_ff = 4 × d_model = 16384

激活函数

  • ReLU: 经典且简单。
  • GELU: GPT 模型常用。
  • SwiGLU: LLaMA 和 PaLM 使用。

Layer Normalization

这是训练稳定性的关键组件:

Pre-LN vs Post-LN

Post-LN(原版):

x = x + Attention(LayerNorm(x))

Pre-LN(现代):

x = LayerNorm(x + Attention(x))

Pre-LN 提供更稳定的训练效果,已成为当今行业标准。

Encoder 与 Decoder 架构

Encoder-Only(BERT 风格)

  • 双向 attention。
  • 用于 Classification、NER、语义相似度。
  • Masked Language Modeling。

Decoder-Only(GPT 风格)

  • 因果/自回归 attention。
  • 用于文本生成与对话。
  • 下一个 token 预测。

Encoder-Decoder(T5、BART)

  • 序列到序列任务。
  • 用于翻译与摘要。

Causal Masking

用于在 decoder 模型中遮蔽未来 token:

mask = triu(ones(seq_len, seq_len), diagonal=1) masked_scores = scores + mask × (-inf)

这确保模型在生成时只能看到先前的 tokens。

KV-Cache 优化

为防止推理过程中出现重复计算:

1Step 1: Calculate K_1, V_1 → save to cache 2Step 2: Calculate K_2, V_2 → K = [K_1, K_2], V = [V_1, V_2] 3Step n: Calculate only for the new token, retrieve old values from cache

**内存节省:**处理步骤由 O(n²) → O(n)。

Flash Attention

一种高效利用内存的注意力机制实现:

标准 Attention 的问题:

  • O(n²) 的内存占用。
  • HBM(高带宽内存)瓶颈。

Flash Attention 的解决方案:

  • **Tiling:**将注意力拆分为小块处理。
  • **Online Softmax:**增量式计算。
  • **I/O Aware:**优化 GPU 内存层级。

**效果:**2-4 倍速度提升,5-20% 内存节省。

Sparse Attention 变体

通过减少注意力复杂度来支持更长的上下文:

Local Attention

仅关注邻近的 tokens。

Dilated Attention

以特定间隔进行注意力计算。

Longformer Pattern

结合 Local + Global 注意力。

Modern Transformer 变体

ModelFeatureContext Length
GPT-4MoE, long context128K
Claude 3Constitutional AI200K
Gemini 1.5Sparse MoE1M
MistralSliding window32K

结论

Transformer 架构是现代 AI 的核心构建模块。其自注意力机制、并行处理能力以及学习长距离依赖的能力,使这一架构具有革命性意义。

在 Veni AI,我们在企业解决方案中高效使用基于 Transformer 的模型。如需技术咨询,请联系我们。

İlgili Makaleler