249 lines
7.8 KiB
Markdown
249 lines
7.8 KiB
Markdown
# 大模型架构基础
|
||
|
||
> 理解现代大语言模型的底层架构 — Transformer、注意力机制与关键组件
|
||
|
||
---
|
||
|
||
## 发展脉络
|
||
|
||
```
|
||
2017 Transformer 论文
|
||
│ "Attention Is All You Need"
|
||
▼
|
||
2018 GPT-1 / BERT
|
||
│ 解码器-only / 编码器-only
|
||
▼
|
||
2020 GPT-3(175B)— Scaling Law 确立
|
||
▼
|
||
2022 ChatGPT / GPT-3.5 — RLHF 对齐
|
||
▼
|
||
2023 GPT-4 / LLaMA / Claude 2
|
||
│ 多模态、MoE 兴起
|
||
▼
|
||
2024 LLaMA 3 / Qwen 2.5 / DeepSeek-V3
|
||
▼
|
||
2025 GPT-5 / Claude Opus 5 / DeepSeek-V4
|
||
大规模 MoE、混合注意力、推理时扩展
|
||
```
|
||
|
||
---
|
||
|
||
## 一、Transformer 架构
|
||
|
||
现代大语言模型的基石,发表于 2017 年。核心思想:用**自注意力机制**取代循环/卷积,实现并行计算。深度讲解见 [[Transformer 架构详解]]。
|
||
|
||
### 架构总览
|
||
|
||
```
|
||
┌──────────────┐
|
||
输入文本 → │ Embedding │ → Token 向量
|
||
└──────┬───────┘
|
||
▼
|
||
┌─────────────────────────────┐
|
||
│ Transformer Block × N │ ← 重复 N 层(数十到数百层)
|
||
│ ┌───────────────────────┐ │
|
||
│ │ Multi-Head Attention │ │ ← 核心:自注意力
|
||
│ │ + Layer Norm + 残差 │ │
|
||
│ ├───────────────────────┤ │
|
||
│ │ Feed-Forward (FFN) │ │ ← 逐位置的全连接网络
|
||
│ │ + Layer Norm + 残差 │ │
|
||
│ └───────────────────────┘ │
|
||
└─────────────┬───────────────┘
|
||
▼
|
||
┌──────────────┐
|
||
│ 输出头 │ → 预测下一个 Token
|
||
└──────────────┘
|
||
```
|
||
|
||
### 三种变体
|
||
|
||
| 类型 | 代表模型 | 特点 |
|
||
|---|---|---|
|
||
| **编码器-only** | BERT、RoBERTa | 双向注意力,适合理解任务(分类、NER) |
|
||
| **解码器-only** | GPT 系列、LLaMA、DeepSeek | 因果注意力(只看左边),适合生成任务 |
|
||
| **编码器-解码器** | T5、BART | 融合两者,适合翻译、摘要 |
|
||
|
||
> 现代大语言模型**几乎全部使用解码器-only**(自回归生成)。
|
||
|
||
---
|
||
|
||
## 二、自注意力机制(Self-Attention)
|
||
|
||
### 直观理解
|
||
|
||
> 让每个词"看到"句子中所有其他词,并决定应该关注哪些。
|
||
|
||
```
|
||
"我 爱 北京 天安门"
|
||
│ │ │ │
|
||
└─────┼──────┼───────┘
|
||
│ │
|
||
每个词都和所有词计算关联度(注意力权重)
|
||
```
|
||
|
||
### 数学过程
|
||
|
||
对每个输入的 Token 向量,计算三个投影:
|
||
|
||
| | 符号 | 含义 |
|
||
|---|---|---|
|
||
| **Q(Query)** | 查询 | "我在找什么?" |
|
||
| **K(Key)** | 键 | "我有什么?" |
|
||
| **V(Value)** | 值 | "我的实际内容" |
|
||
|
||
$$
|
||
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V
|
||
$$
|
||
|
||
步骤:
|
||
1. **Q × K^T** → 计算每对 token 之间的关联分数(注意力矩阵)
|
||
2. **÷ √d_k** → 缩放,防止梯度消失
|
||
3. **Softmax** → 归一化为概率分布
|
||
4. **× V** → 用注意力权重加权求和,得到输出
|
||
|
||
### 多头注意力(Multi-Head Attention)
|
||
|
||
> 不是做一次注意力,而是并行做多次(如 8/16/32 个头),每个头关注不同的语义模式。
|
||
|
||
- 头 1 可能关注"语法结构"
|
||
- 头 2 可能关注"实体关系"
|
||
- 头 3 可能关注"长距离依赖"
|
||
|
||
---
|
||
|
||
## 三、关键组件
|
||
|
||
### 1. Token 与 Tokenizer
|
||
|
||
| 概念 | 说明 |
|
||
|---|---|
|
||
| **Token** | 文本被拆分的最小语义单元 |
|
||
| **Tokenizer** | 将文本切分为 Token 的工具(BPE、SentencePiece 等) |
|
||
| **词表大小** | 通常 32K ~ 256K,DeepSeek V4 使用了更大词表 |
|
||
|
||
```
|
||
"Hello, world!" → ["Hello", ",", " world", "!"]
|
||
"你好世界" → ["你好", "世界"]
|
||
```
|
||
|
||
### 2. 位置编码(Positional Encoding)
|
||
|
||
Transformer 本身**不感知顺序**,需要额外注入位置信息:
|
||
|
||
| 类型 | 说明 | 代表 |
|
||
|---|---|---|
|
||
| **绝对位置编码** | 每个位置有唯一的向量 | 原始 Transformer 的正弦编码 |
|
||
| **相对位置编码** | 编码 token 之间的相对距离 | T5 的相对偏置 |
|
||
| **旋转位置编码(RoPE)** | 对 Q/K 做旋转,编码相对位置 | LLaMA、DeepSeek、Qwen 主流方案 |
|
||
|
||
### 3. 前馈网络(Feed-Forward Network, FFN)
|
||
|
||
```
|
||
FFN(x) = Act(W₂ · Act(W₁ · x + b₁) + b₂)
|
||
```
|
||
|
||
- 两层全连接,中间有激活函数(GELU/SwiGLU)
|
||
- 参数量占比最大(约 2/3)
|
||
- SwiGLU 是现代模型的首选激活函数
|
||
- 深度讲解见 [[FFN 前馈网络详解]]
|
||
|
||
### 4. 残差连接(Residual Connection)
|
||
|
||
```
|
||
输出 = LayerNorm(x + SubLayer(x))
|
||
```
|
||
|
||
- 缓解深层网络的梯度消失
|
||
- 让模型可以"跳过"不必要的变化
|
||
- GPT 使用 Pre-LN(层归一化在子层之前)
|
||
|
||
### 5. 层归一化(Layer Normalization)
|
||
|
||
- 对每个样本的特征维度做归一化
|
||
- 稳定训练、加速收敛
|
||
- 现代主流:**RMSNorm**(去掉均值中心化,更快更简单)
|
||
|
||
---
|
||
|
||
## 四、训练范式
|
||
|
||
```
|
||
┌──────────────┐
|
||
│ 1. 预训练 │ 海量互联网文本,无监督学习(预测下一个 Token)
|
||
│ Pretraining │ 数十 TB 数据,数万 GPU,数周到数月
|
||
└──────┬───────┘
|
||
▼
|
||
┌──────────────┐
|
||
│ 2. 监督微调 │ 高质量人工标注的指令-回复对
|
||
│ SFT │ 让模型学会"对话格式"和"遵循指令"
|
||
└──────┬───────┘
|
||
▼
|
||
┌──────────────┐
|
||
│ 3. 对齐训练 │ RLHF / DPO / RLVR
|
||
│ Alignment │ 让模型输出更安全、更有用、更符合人类偏好
|
||
└──────────────┘
|
||
```
|
||
|
||
### 关键概念
|
||
|
||
| 概念 | 说明 |
|
||
|---|---|
|
||
| **Scaling Law** | 模型性能随参数量、数据量、计算量幂律增长 |
|
||
| **涌现能力** | 大模型独有的、小模型没有的能力(如思维链推理) |
|
||
| **RLHF** | 基于人类反馈的强化学习 — 训练奖励模型指导策略优化 |
|
||
| **DPO** | 直接偏好优化 — 更简单地对齐方法,不需要单独的奖励模型 |
|
||
|
||
---
|
||
|
||
## 五、推理时技术
|
||
|
||
### 自回归生成(Autoregressive Generation)
|
||
|
||
```
|
||
输入:"今天天气" → 预测下一个 Token "真"
|
||
"今天天气真" → 预测下一个 Token "好"
|
||
"今天天气真好" → 预测下一个 Token "<eos>"(停止)
|
||
```
|
||
|
||
每次生成一个 Token,直到输出结束符或达到最大长度。
|
||
|
||
### 关键概念
|
||
|
||
| 概念 | 说明 |
|
||
|---|---|
|
||
| **Temperature** | 控制随机性,越高越随机(创造性高),越低越确定 |
|
||
| **Top-p(核采样)** | 只从累积概率 ≥ p 的最少 Token 集合中采样 |
|
||
| **Top-k** | 只从概率最高的 k 个 Token 中采样 |
|
||
| **KV Cache** | 缓存已生成 Token 的 Key/Value,避免重复计算,加速推理 |
|
||
| **上下文窗口** | 模型能同时"看到"的最大 Token 数(现在主流 128K~1M) |
|
||
|
||
---
|
||
|
||
## 六、当前主流架构扩展
|
||
|
||
### MoE(混合专家)
|
||
|
||
> 详见 [[MoE 混合专家架构]]
|
||
|
||
- 不是所有参数都参与每次推理
|
||
- 每个 Token 只路由到少数"专家"子网络
|
||
- 总参数极大但计算量可控
|
||
|
||
### 多模态扩展
|
||
|
||
> 见 [[多模态大模型]]
|
||
|
||
- 在 LLM 基础上添加视觉/音频编码器
|
||
- 通过投影器对齐不同模态的 Token
|
||
|
||
---
|
||
|
||
## 扩展阅读
|
||
|
||
- 原始论文:[Attention Is All You Need (2017)](https://arxiv.org/abs/1706.03762)
|
||
- [The Illustrated Transformer](https://jalammar.github.io/illustrated-transformer/) — 图文详解 Transformer
|
||
|
||
---
|
||
|
||
*最后更新:2026-08-05*
|