何时打开:你要面试 LLM 工程 / 想搞懂主流模型架构差异 / 想从 nanochat 入门 / 在做 attention 优化。本 wiki 把 ai-interview 8 股 + Karpathy nanochat 范式整理在一起。
一句话核心:三种 PLM 架构差异 = attention mask 不同 + LLaMA 用 RMS Norm + SwiGLU + RoPE + GQA + 主流推理优化 = Flash Attention + KV Cache + 量化 + Karpathy 243 行复现 LM 整体算法。
0. 视角说明
1. 三种 Decoder 架构(基础面 1)
1.1 主流开源模型分类
| 类型 |
代表模型 |
注意力 |
| Prefix Decoder |
ChatGLM / ChatGLM2 / U-PaLM |
输入双向 + 输出单向 |
| Causal Decoder |
LLaMA-7B / LLaMa 衍生物 / GPT 系列 |
从左到右单向 |
| Encoder-Decoder |
T5 / Flan-T5 / BART |
输入双向 + 输出单向(独立 encoder) |
1.2 三者区别 = attention mask 不同
- Prefix Decoder:对前缀(prompt)双向 attention,后续生成单向
- Causal Decoder:全程单向,从左到右
- Encoder-Decoder:Encoder 双向,Decoder 单向,Decoder 可访问 Encoder 全输出
1.3 为什么主流是 Causal Decoder?
- 训练效率高 —— 单一目标 / 流水线整齐
- zero-shot 能力强 —— GPT-3 涌现路径
- 长文本生成自然 —— autoregressive 一气呵成
2. Layer Normalization
2.1 Layer Norm(LN)
LN(x) = γ * (x - μ) / σ + β
2.2 RMS Norm
RMS Norm(x) = γ * x / RMS(x)
RMS(x) = sqrt(mean(x²))
相比 LN:
- 简化:去除均值平移(只留 scaling,无 shift)
- 更快
- 效果相当 / 略提升
2.3 Deep Norm
- 执行 LN 之前 up-scale 残差连接(alpha > 1)
- 初始化阶段 down-scale 参数(beta < 1)
- 解决了 1000 层 Transformer 的训练稳定性问题(Microsoft 2022)
2.4 主流 LLM 用哪种 Norm?
| 模型 |
Norm |
| GPT 系列 |
Layer Norm |
| BERT |
Layer Norm |
| LLaMA / GLM |
RMS Norm |
| GPT-NeoX / GLM-130B |
Deep Norm |
3. 激活函数(FFN 块)
3.1 FFN 基本公式
FFN(x) = max(0, xW_1 + b_1) * W_2 + b_2
中间维度通常为 4h
3.2 主要激活函数
| 函数 |
公式 |
特性 |
| GeLU |
x * Φ(x) |
平滑替代 ReLU |
| Swish |
x * σ(x) |
自动求导友好 |
| GLU |
(x * W) ⊗ σ(x * V) |
线性门控 |
| GeGLU |
(x * W) ⊗ GeLU(x * V) |
GLU + GeLU |
| SwiGLU |
(x * W) ⊗ Swish(x * V) |
GLU + Swish / LLaMA 使用 |
GLU 系列中间维度 = 4h * 2/3(因为有 3 个权重矩阵)。
3.3 主流 LLM 用哪种激活?
| 模型 |
激活函数 |
| GPT 系列 |
GeLU |
| BERT |
GeLU |
| LLaMA |
SwiGLU |
| GLM |
GeGLU |
| PaLM |
SwiGLU |
4. Attention 升级
4.1 标准多头注意力(MHA)
Attention(Q, K, V) = softmax(QK^T / sqrt(d)) * V
每个 head 有独立 Q/K/V 投影 → 显存 / 计算密集。
4.2 Multi-Query Attention(MQA)
- 多 Query / 共享 1 个 Key 1 个 Value
- 显存减少 → 推理快
- 效果稍降
4.3 Grouped-Query Attention(GQA)
- MHA 和 MQA 中间路线
- Q 多个 head,K/V 分组(g 组)
- LLaMA-2 / 3 用 GQA
- 推理速度接近 MQA,效果接近 MHA
4.4 Flash Attention
- 不显式存储 Attention Matrix
- 分块计算 + softmax 重组
- 训练 / 推理都提速 + 显存大降
- Stanford Tri Dao 2022
4.5 线性注意力 / 稀疏注意力
| 类型 |
思路 |
| Linear Attention |
softmax 用核函数近似 → O(n) |
| Sparse Attention |
只算部分 token pair → Longformer / BigBird |
| Sliding Window |
局部窗口 → Mistral |
5. 位置编码
| 类型 |
代表 |
| Absolute Position Embedding |
BERT / 原版 Transformer |
| Relative Position |
T5 |
| RoPE(Rotary Position Embedding) |
LLaMA / GLM / 主流 |
| ALiBi |
BLOOM |
RoPE 优点:
- 自然支持长序列外推
- 旋转矩阵编码相对位置
- 与 attention 计算融合自然
6. 主流 LLM 配置速查
| 模型 |
Norm |
激活 |
Attention |
位置编码 |
| GPT-3 |
LN |
GeLU |
MHA |
Absolute |
| LLaMA-1 |
RMS |
SwiGLU |
MHA |
RoPE |
| LLaMA-2 |
RMS |
SwiGLU |
GQA |
RoPE |
| LLaMA-3 |
RMS |
SwiGLU |
GQA |
RoPE |
| ChatGLM |
LN |
GeGLU |
MHA |
RoPE |
| Mistral |
RMS |
SwiGLU |
Sliding Window |
RoPE |
| DeepSeek-V2 |
RMS |
SwiGLU |
MLA(独家) |
RoPE |
7. 损失函数 + 相似度
7.1 损失函数
| 函数 |
公式 |
用途 |
| 交叉熵(CE) |
-Σ y log(ŷ) |
分类 / next-token prediction |
| KL 散度 |
Σ p log(p/q) |
蒸馏 / RLHF reference 对齐 |
7.2 相似度
| 函数 | 公式 | 用途 |
|---|---|---|
| 余弦相似度 | (a·b) / (|a||b|) | 向量检索 / RAG |
| 欧氏距离 | sqrt(Σ(a-b)²) | k-NN |
| Jaccard | |A∩B| / |A∪B| | 文本去重 / set 相似 |
8. LLMs 进阶面:复读机问题
LLM 面试 / 基础架构与组件 §LLMs 进阶面:
8.1 什么是复读机问题?
LLM 生成时陷入重复模式:
- 重复同一短语 ("我不知道。我不知道。我不知道...")
- 重复模板回答
- 重复用户输入
8.2 8 大缓解策略
- 温度参数(temperature) —— 提高 temperature 增加多样性
- Top-K / Top-P sampling —— 限制候选集
- Repetition Penalty —— 惩罚已出现 token
- Beam Search 控制 —— diverse beam search
- 去重(no-repeat-ngram) —— n-gram 禁止重复
- SFT 数据多样性 —— 训练时混合多样回答
- DPO / RLHF 偏好对齐 —— 用户反馈惩罚复读
- LLM-as-Judge 过滤 —— 推理后处理
9.1 Tokenizer
| 算法 |
代表 |
| BPE(Byte Pair Encoding) |
GPT-2 / LLaMA |
| SentencePiece |
T5 / LLaMA |
| WordPiece |
BERT |
| Tiktoken |
GPT-3/4 |
9.2 KV Cache(推理优化关键)
- 缓存 K / V —— 避免每步重算
- 显存爆炸 → 长序列 GPU 撑不住
- 解法:GQA + 量化 + PagedAttention(vLLM)
9.3 推理速度优化
| 技术 |
提速倍数 |
| KV Cache |
基线 |
| Flash Attention |
1.5-2x |
| PagedAttention(vLLM) |
2-3x |
| Quantization(INT8/INT4) |
1.5-2x |
| Speculative Decoding |
2-3x |
| Continuous Batching |
2-5x throughput |
10. Karpathy nanochat 入门路径
Karpathy · Software in the era of AI(Software 3.0) + 小红书 / Vibecoding 审美 + 创作者经济合集:
10.1 nanochat / nanoGPT 价值
- 整体算法 243 行 PyTorch —— Karpathy 复现
- GPT 多出来的几十万行只是为了跑得更快(系统工程,非算法)
- 学习路径:看 nanoGPT → nanochat → 真懂 Transformer
10.2 小红书 0 基础解读(配套提示词)
- 学生与老师批改填空 比喻反向传播
- 10 个浏览器模块 + 新词解释
- 让普通用户能跟着 Karpathy YouTube 走完一遍
10.3 Karpathy YouTube 系列推荐
- Let's build GPT: from scratch, in code, spelled out —— Transformer 内核
- Let's reproduce GPT-2 —— 工程级复现
- Let's build the GPT Tokenizer —— BPE 详解
- nanochat —— 完整训练 chatbot
11. LLMs 训练经验帖
LLM 面试 / 基础架构与组件 §10:
11.1 训练阶段划分
| 阶段 |
目标 |
数据 |
| Pretrain |
学语言 + 知识 |
万亿 token / Common Crawl + 高质 |
| Continue Pretrain |
注入领域知识 |
领域 70% + 通用 30% |
| SFT(Supervised Fine-tuning) |
学指令跟随 |
高质指令对 |
| RLHF / DPO |
偏好对齐 |
人类偏好对 |
11.2 常见踩坑
- Loss 突然 NaN → Deep Norm / 梯度裁剪 / fp32 累积
- SFT 之后模型变傻 → 灾难遗忘 / SFT 过拟合
- Continue Pretrain 学不进领域 → 数据质量 / 配比 / 训练步数
- 领域微调通用能力下降 → LoRA 增量 + 通用数据混合
12. 怎么用 —— 按身份的 LLM 基础路径
| 你是谁 |
主用方法 |
起点 |
| 想面试 LLM 工程 |
llm-interview-basics 12 PDF |
Decoder 三种 + Norm + 激活 + Attention |
| 想从 0 入门 |
Karpathy nanochat |
nanoGPT → nanochat → YouTube 系列 |
| 想选模型 |
主流配置速查 |
LLaMA-3 / Mistral / DeepSeek-V2 |
| 要做长序列 |
RoPE + Flash + GQA |
LLaMA-2 / 3 路线 |
| 要做推理优化 |
KV Cache + vLLM + 量化 |
PagedAttention + INT8 |
| 想做 chatbot |
Causal Decoder + SFT + DPO |
LLaMA / Mistral + LoRA |
通用纪律:
- 三种 PLM 差异 = mask 不同(基础面 1)
- LLaMA 范式 = RMS Norm + SwiGLU + RoPE + GQA
- 整体算法 243 行,其他都是工程(Karpathy)
- Flash Attention / vLLM 是推理优化必经
- 复读机问题用 8 大策略综合解
13. 引用清单