📖 深度解析子页面
想要更深入了解?我们为面试准备了专题深度解析页面:
- 🔬 上下文窗口演进深度解析 — 从 512 到 1M tokens 的完整技术路线
- 🔬 微调与分布式训练深度解析 — LoRA、QLoRA、FSDP、DeepSpeed 完整指南
- 🔬 推理优化深度解析 — KV Cache、量化、投机解码、vLLM 全面解析
1. 预训练范式的演进
大语言模型的成功基于一个范式转变:从传统的特征工程与监督学习,到大规模无标注数据的自监督预训练加微调,再到 Prompt-based 的零样本/少样本学习。
1.1 自监督学习
自监督学习利用海量无标注文本数据,通过设计自动生成的标签来学习通用的语言表示。这是 LLM 预训练的核心。
1.2 Causal Language Modeling (CLM)
定义: P(x_t | x_1, x_2, ..., x_{t-1}),自回归地预测下一个 token。
- 在前向传播时应用因果掩码 (causal mask),防止 attention 看到未来的 token
- 适合生成任务,GPT 系列都采用 CLM
- 损失函数:标准交叉熵,对所有位置求和
1.3 Masked Language Modeling (MLM)
定义: 随机掩盖输入的 15% tokens,模型需要预测被掩盖的 token。
- 掩盖策略: 80% [MASK] token,10% 随机 token,10% 保持不变
- 为什么是 80/10/10? 增加模型的鲁棒性,防止只学习 [MASK] 这个特殊符号
- 适合理解任务,BERT 使用 MLM
- MLM 允许双向 attention,模型可以看到全上下文
1.4 CLM vs MLM 对比
| 特性 | CLM (GPT) | MLM (BERT) |
|---|---|---|
| 目标任务 | 文本生成 | 文本理解 |
| Attention 方向 | 单向(因果) | 双向 |
| 训练目标 | 预测下一个 token | 预测被掩盖的 token |
| 推理方式 | 自回归生成 | 一次性输出 |
| 代表模型 | GPT-2/3/4, LLaMA | BERT, RoBERTa |
2. GPT 系列完整演进
从 GPT-1 到 GPT-4o,再到 o1/o3 推理模型,展示了生成式 AI 的指数级进步。以下是关键模型的详细规格:
| 模型 | 参数量 | 层数 | d_model | n_heads | 上下文 | 训练数据 | 关键特性 |
|---|---|---|---|---|---|---|---|
| GPT-1 | 117M | 12 | 768 | 12 | 512 | BookCorpus | 第一代生成模型 |
| GPT-2 | 1.5B | 48 | 1600 | 25 | 1024 | WebText 40GB | 强零样本能力 |
| GPT-3 | 175B | 96 | 12288 | 96 | 2048 | 570GB 文本 | In-context learning 突破 |
| GPT-3.5 | ~175B | 96 | 12288 | 96 | 4096 | 1T+ tokens | RLHF 对齐,ChatGPT 基础 |
| GPT-4 | ~1.7T* | ~120 | 12288+ | 128 | 8K/32K/128K | 多模态数据 | MoE 架构,多模态 |
| GPT-4o | ~1.7T* | ~120 | 12288+ | 128 | 128K | text+image+audio | 原生多模态统一编码 |
| o1 (2024) | 未公开 | - | - | - | 128K | 推理导向训练 | 推理时 CoT,长思考链 |
| o3 (2025) | 未公开 | - | - | - | 128K | 强化推理数据 | ARC-AGI 92.3% 准确率 |
| GPT-4.1 (2025) | 未公开 | - | - | - | 1M | 超长上下文优化 | 100 万 token 上下文 |
2.1 关键演进点
- 参数量扩展: 117M → 175B,每个数量级都带来质变
- 上下文长度: 512 → 1M,直接影响 RAG 和长文档理解
- 多模态: GPT-4o 原生支持 text/image/audio
- 推理优化: o1/o3 在测试时计算,实现更强泛化
- 标注改进: GPT-3 纯预训练,GPT-3.5+ 引入 RLHF
3. 上下文窗口的演进 (关键面试话题)
上下文长度是 LLM 能力的关键指标,直接影响长文档理解、RAG 和 Agent 记忆能力。
3.1 上下文长度时间线
- GPT-2: 1024 → GPT-3: 2048 → GPT-3.5: 4096 → GPT-4: 8K~128K → Claude 3: 200K → Gemini 1.5: 1M → GPT-4.1: 1M
3.2 为什么长上下文很重要
- 长文档理解: 一次性处理整本书或完整代码库
- RAG 系统: 检索更多相关文档,减少漏信息
- Agent 记忆: 保留完整对话历史和执行轨迹
- 上下文学习: 更多 few-shot 示例,提升准确率
3.3 长上下文的实现技术
RoPE 外推: 调整 base frequency,实现 position embedding 外推,YaRN 分频段拉伸
ALiBi: 用线性偏差而非位置编码,天然支持长度外推
Ring Attention & Landmark Attention: 分布式处理超长序列,压缩历史 KV 为 summary
3.4 长上下文的挑战
- "Needle in a Haystack": 长文档中找相关信息,中间位置表现差
- "Lost in the Middle": 模型忽视中间信息,关注开头和结尾
- KV Cache 膨胀: 推理时内存占用随序列长度二次方增长
- 计算成本: Attention O(n²) 复杂度,超长序列代价极高
面试考点: 实现长上下文的方法与优缺点?长上下文为什么难?
4. BERT 系列与理解类模型
BERT 系列采用双向 Transformer 和 MLM,专注文本理解,与 GPT 生成式范式不同。
4.1 BERT 与变体
- BERT-base: 110M 参数,12 层,d=768,12 heads
- BERT-large: 340M 参数,24 层,d=1024,16 heads
- RoBERTa: 去掉 NSP,动态 masking,更多数据和更大 batch,性能显著提升
- ALBERT: 参数共享和矩阵分解实现轻量化,参数量减少 90%
- DeBERTa: Disentangled Attention 分离内容和位置,性能超越 BERT
4.2 BERT 的 Mask 策略为什么是 80/10/10?
- 80% [MASK]: 学习预测被掩盖单词,主要目标
- 10% 随机: 增加对噪声的鲁棒性,检测输入错误
- 10% 不变: 保留原始 token,表示空间与微调时更接近
5. 开源 LLM 生态
开源社区推动 LLM 民主化,高效实用的模型层出不穷。
| 模型 | 规格 | 训练数据 | 上下文 | 特性 | 场景 |
|---|---|---|---|---|---|
| LLaMA 1/2 | 7B~70B | 1-2T tokens | 2K-4K | 高效训练,GQA | 本地部署 |
| LLaMA 3 | 8B~405B | 15T+ tokens | 8K-128K | Tiktoken,超长上下文 | 生产级应用 |
| Mistral 7B | 7B | 7T tokens | 4K (Sliding Window) | GQA,质量超 LLaMA 2 13B | 高效推理 |
| Mixtral 8x7B | 47B / 13B 激活 | 大规模混合 | 4K | 稀疏 MoE,2/8 routing | 动态计算 |
| DeepSeek V2 | 236B (MLA) | 5T+ tokens | 4K~128K | MLA 架构,KV 压缩 | 成本优化部署 |
| DeepSeek R1 | 1.5B~671B | RL 导向 | 8K~128K | 开源推理模型 | 复杂推理任务 |
| Qwen 2.5 | 0.5B~72B | 多语言 | 128K | 全系列,MoE 版本 | 多语言应用 |
5.1 核心创新模型
Mistral 7B: Sliding Window Attention 让每个 token 只关注最近 4K token,KV Cache 线性增长,单个 7B 超越 LLaMA 2 13B
DeepSeek V2 (MLA): 将 KV 投影到低维潜空间,KV Cache 从 40GB 减少到 1GB,推理显存节省 95%
DeepSeek R1: 首个完全开源推理模型,RL 训练长 CoT,R1 70B 在数学和代码超越 GPT-4,推理轨迹完全可解释
6. Mixture of Experts (MoE) 详解
MoE 通过稀疏激活解耦参数量和计算量,是现代大模型提高效率的关键技术。
6.1 MoE 结构
- 将 FFN 替换为多个独立 Expert FFN(如 8 个)
- Router 网络 G(x) = softmax(x·W_g) 为每个 token 计算 expert 权重
- TopK 选择概率最高的 K 个 expert,通常 K=2
- 输出:y = Σ(G_i(x)·Expert_i(x)),仅对选中 expert 求和
6.2 训练挑战与解决方案
Load Balancing Loss: L_balance = N × Σ_i (f_i × P_i),其中 f_i 是 token 选中比例,P_i 是路由概率均值,强制 expert 负载均衡
Expert Capacity: 每个 expert 处理 token 数上限 = (总 token 数 / expert 数) × capacity_factor,超容处理通常丢弃或分发
6.3 参数量 vs 计算量
- Mixtral 8x7B: 总参数 47B,但每次只激活 ~13B(2 个 expert),推理成本接近 13B
- 参数效率: 存储 47B,推理仅需 13B 计算,参数和计算完全解耦
- DeepSeek V3: 256 个小 expert + 1 个 shared expert,推理速度快 50%+,性能更强
面试考点: MoE 的优势和挑战?Router 训练如何防止崩溃?Load Balancing 为什么重要?
7. Scaling Laws (扩展规律)
Scaling Laws 是预测 LLM 性能的经验规律,对预算规划和模型设计至关重要。
7.1 Kaplan et al. (2020) 的幂律
公式: L(N,D) = (N_c/N)^α_N + (D_c/D)^α_D,其中 α_N ≈ 0.07, α_D ≈ 0.16
关键发现: 增加数据的收益 (0.16) > 增加参数 (0.07),但实践中增加参数更容易(显存、通信开销小)
7.2 Chinchilla 定律 (2022)
问题: 给定固定计算预算 C,如何最优分配参数 N 和数据 D?
发现: N 和 D 应成比例增长,N ∝ C^0.5, D ∝ C^0.5
具体例子: Gopher 280B (300B tokens) vs Chinchilla 70B (1.4T tokens),同样计算量下 Chinchilla 70B 性能更好
启示: 数据量很重要,不应为大参数而牺牲数据。LLaMA 7B 在 1T tokens 上训练,质量超越 GPT-3 175B
7.3 Emergent Abilities 争议
- 涌现能力:在某个规模阈值后突然出现的能力,如 CoT 推理、多步算术
- 争议:可能是评估指标不连续性,而非模型性能本身的不连续
- 现共识:表现形式阈值性,但内部学习连续
7.4 数据质量比数据量更重要
- Phi 系列: 1.3B 模型用高质量教科书级数据,性能达 7B 模型
- 启示: 数据质量 > 数据量 > 模型大小
面试考点: Chinchilla 定律的发现?为什么 LLaMA 过度训练?
8. 分词 (Tokenization) 详解
分词是 LLM 的第一步,直接影响模型性能和计算效率。
8.1 BPE (Byte Pair Encoding)
算法:初始化为字符级 → 统计相邻 token 对频率 → 合并最频繁的对 → 重复直到词表大小达标
应用: GPT-2 使用 Byte-level BPE,词表大小 50257
8.2 WordPiece vs SentencePiece
- WordPiece: BERT 使用,基于似然度选择合并,更智能但计算量大
- SentencePiece: 语言无关,支持 BPE 和 Unigram,无需预处理,LLaMA/Mistral 使用
8.3 Tiktoken (OpenAI)
- GPT-4 官方分词器,词表 ~100K,针对代码和多语言优化
- C++ 实现,比 Python SentencePiece 快 10 倍
8.4 中文分词特殊挑战
- 中文无明确词边界,单个汉字可能多 token 映射
- 优化:词表加入常用中文词,减少多 token 映射
- 成本:中文需更多 token,影响推理成本
面试考点: BPE 算法步骤?为什么需要 subword tokenization?
9. 预训练工程 (关键面试话题)
预训练是 LLM 的核心,涉及数据、分布式训练、优化等多方面。
9.1 数据层面
数据源: Common Crawl, The Pile, RedPajama, FineWeb
数据清洗: MinHash 去重、质量过滤、有害内容检测、语言检测
数据配比: 代码数据 3-5% 但影响巨大,数学数据提升计算能力,多语言混合
9.2 分布式训练 — 必须深入理解
| 方式 | 显存 per GPU | 通信量 | 复杂度 | 适用 |
|---|---|---|---|---|
| DP | O(model) | 2×model | 低 | 小模型,显存充足 |
| DDP | O(model) | 2×model | 低 | 中等规模,多节点 |
| FSDP (ZeRO-3) | O(model/N) | 3×model | 中 | 大模型,显存受限 |
| TP | O(model/k) | 2×model | 高 | 超大模型,节点内 |
| PP | O(model/p) | 激活 size | 高 | 超大模型,显存压力 |
Data Parallel (DP): 每个 GPU 持完整模型,AllReduce 聚合梯度,显存占用大,扩展性差
DDP: PyTorch 官方推荐,Ring AllReduce 或树形 AllReduce,Gradient Bucketing 重叠通信,NCCL/Gloo 后端
FSDP (ZeRO Stage 3): 分片参数/梯度/优化器状态,内存 O(model/N),前向 AllGather + 反向 ReduceScatter,通信量 3×model_size
Tensor Parallelism (TP): 列并行无需同步,行并行需 AllReduce,通常节点内使用(NVLink 高带宽)
Pipeline Parallelism (PP): 不同层不同 GPU,1F1B 减少 bubble,memory-efficient
3D 并行: 节点内 TP (高速) + 节点间 PP + DP,超大模型标配
9.3 混合精度训练
FP32 vs FP16 vs BF16: FP16 易上溢下溢,BF16 指数范围与 FP32 相同更稳定
AMP: 前向 FP16(快),反向 FP32 master weights,Loss Scaling 防止梯度下溢
BF16 优势: 无需 Loss Scaling,数值稳定性好,A100+ 原生支持
面试考点: 为什么混合精度?BF16 vs FP16?
9.4 训练硬件
- A100: 80GB HBM2e,312 TFLOPS,NVLink 600GB/s
- H100: 80GB HBM3,989 TFLOPS,NVLink 900GB/s
- Blackwell: 192GB HBM3e,1.46 POPS,NVLink 1.8TB/s
10. 微调技术详解
微调是快速适配预训练模型的关键技术。
10.1 Full Fine-tuning vs LoRA
Full Fine-tuning: 更新所有参数,需完整模型 + 梯度 + 优化器状态,显存和时间成本高
LoRA (Low-Rank Adaptation): W_new = W_0 + B·A,B∈R^{d×r}, A∈R^{r×k}, r << min(d,k)
- 参数量:Full d×k vs LoRA r×(d+k),通常节省 99%+ 参数
- 初始化:A 高斯噪声,B=0(开始 ΔW=0)
- 缩放:ΔW = (α/r)·B·A,α 通常 16 或 32
- 应用层:通常只在 Attention 的 Q, V(K 效果差)
- 推理合并:W_new = W_0 + B·A 无额外延迟
为什么低秩能工作? 微调主要涉及低维子空间,高秩未必必要
10.2 QLoRA & DoRA
QLoRA: 4-bit NF4 量化基础模型 + LoRA,Double Quantization + Paged Optimizer,单张 48GB GPU 微调 65B 模型
DoRA: 权重分解为幅度 m 和方向 V,V 用 LoRA,m 标准梯度,更好梯度流和收敛
10.3 其他方法
- Prefix Tuning:在输入前加可学习 virtual tokens
- P-Tuning:MLP 参数化 prompt
- Instruction Tuning:多样化 (instruction, output) 对微调
面试考点: LoRA 原理?为什么低秩能工作?QLoRA 如何节省内存?
11. 推理优化 (关键面试话题)
推理延迟和吞吐直接影响用户体验和部署成本。
11.1 KV Cache 详解
Autoregressive 生成时,生成第 t 个 token 需要前 t-1 个 token 的 K 和 V。缓存 KV 避免重复计算。
内存占用: 2×n_heads×d_head×seq_len×batch×dtype_size,例 LLaMA 70B @ seq_len=4096 ≈ 40GB(超过模型参数本身)
减小方法: GQA 多个 Q heads 共享 KV head,MQA 极端情况,KV 量化 INT8
11.2 量化 (Quantization)
PTQ: 训练后直接量化,快速但精度可能受影响
GPTQ: 逐层量化,用 Hessian 信息确定最优参数,INT4 损失 <1%
AWQ: 保护激活关键 channel,INT4 性能接近 FP16
GGUF/llama.cpp: CPU 友好的量化格式,无依赖
11.3 Speculative Decoding
小模型快速生成 k 个 candidates,大模型一次性验证。输出分布完全一致(概率校准)。加速比 2-3x。
11.4 vLLM & PagedAttention
PagedAttention: KV Cache 非连续物理 block,类似虚拟内存,解决内存碎片化,显存利用率 ~10% → 90%
Continuous Batching: 动态加入新请求,不等整个 batch 完成,吞吐 3-5x 提升
面试考点: PagedAttention 解决什么?Continuous Batching 原理?
12. 涌现能力与推理模型
2024-2025 年推理能力是最激动的进展,改变了对 AI 能力边界的认知。
12.1 推理模型范式转变
传统 LLM: 一次性预测,token 数固定 (1-100)
推理模型: 花任意多时间思考再给答案
o1 (2024): 长内部 CoT,AIME 83%,闭源
o3 (2025): ARC-AGI 92.3%(人类 85%),计算成本高
DeepSeek R1 (2025): 首个完全开源推理模型,1.5B~671B,RL 训练长 CoT,推理轨迹可解释,R1 70B 超越 GPT-4 Turbo(数学/代码)
12.2 Test-Time Compute Scaling
投入更多推理时计算显著提升性能,精度 vs 延迟/成本权衡。
12.3 为什么推理模型能工作
- 复杂问题需深思,"思考"改进推理
- o1/o3 困难问题远超,简单问题差别不大
- RL 训练有用思考过程,而非无意义填充
面试考点: 什么是涌现能力?推理模型如何工作?为什么 test-time compute 有效?