总览:TorchCode 知识架构与学习路径
总览:TorchCode 知识架构与学习路径
1. 项目定位
TorchCode 是一个以"从零实现 PyTorch 算子"为核心的练习项目,涵盖 40 个深度学习关键组件。每个练习要求不使用高层 API,仅用基础张量操作实现对应算法,从而深入理解底层原理。
2. 知识图谱
┌─────────────────────────────────────┐
│ 深度学习核心知识体系 │
└──────────────┬──────────────────────┘
┌───────────────┬───────────┼───────────┬──────────────────┐
▼ ▼ ▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 基础组件 │ │ 归一化 │ │ 注意力 │ │ 训练优化 │ │ 推理部署 │
└────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │ │ │
┌────┴────┐ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐
│ ReLU │ │LayerNorm│ │ SDPA │ │ Adam │ │ Top-k │
│ GELU │ │BatchNorm│ │ MHA │ │CosLR │ │ Beam │
│ Softmax │ │ RMSNorm │ │ Causal │ │GradClip│ │ Spec. │
│ Linear │ └─────────┘ │ Cross │ │GradAcc │ │ Decode │
│ Embed │ │ GQA │ │KaimInit│ └─────────┘
│ Dropout │ │ Sliding │ │LinReg │
│ CE Loss │ │ Linear │ └────────┘
│ Conv2d │ │ KVCache │
└─────────┘ │ RoPE │
│ Flash │
└────┬────┘
│
┌───────┴───────┐
▼ ▼
┌──────────┐ ┌──────────┐
│ 架构组合 │ │ 高级主题 │
├──────────┤ ├──────────┤
│GPT2 Block│ │ BPE │
│SwiGLU MLP│ │ INT8量化 │
│ViT Patch │ │ DPO Loss │
│ LoRA │ │ GRPO Loss│
│ MoE │ │ PPO Loss │
└──────────┘ └──────────┘3. 模块间依赖关系
以下展示了各算法之间的前置知识依赖:
ReLU / GELU ──────────────────────────────────────┐
Softmax ──────────────────┐ │
Linear ──────────┐ │ │
▼ ▼ ▼
Attention (SDPA) SwiGLU MLP
│ │
┌────────┼────────┐ │
▼ ▼ ▼ │
MHA Causal Cross-Attn │
│ Attention │ │
│ │ │ │
│ ┌────┴────┐ │ │
│ ▼ ▼ │ │
│ GQA Sliding │ │
│ Window │ │
│ │ │
▼ ▼ ▼
KV Cache GPT-2 Block ◄────── LayerNorm
│ │
▼ ▼
Speculative 完整 Transformer
Decoding
RoPE ──► 现代 LLM 注意力(LLaMA 等)
Flash Attention ──► 高效注意力计算
Linear Attention ──► O(n) 复杂度注意力
LoRA ──► 参数高效微调
MoE ──► 稀疏专家模型
ViT Patch ──► 视觉 Transformer
Adam + Cosine LR + Gradient Clipping + Gradient Accumulation ──► 完整训练循环
DPO / GRPO / PPO ──► RLHF 对齐训练
BPE ──► 分词预处理
INT8 量化 ──► 模型压缩部署4. 各模块作用总结
基础组件层
提供神经网络最底层的计算单元。激活函数(ReLU、GELU、Softmax)引入非线性;Linear 层实现仿射变换;Embedding 将离散 token 映射为连续向量;Dropout 提供正则化;Cross-Entropy 计算分类损失;Conv2d 处理空间特征。
归一化层
解决深层网络训练中的内部协变量偏移问题。LayerNorm 按特征维度归一化(Transformer 标配);BatchNorm 按批次维度归一化(CNN 标配);RMSNorm 是 LayerNorm 的简化版(LLaMA 等现代 LLM 使用)。
注意力机制层
Transformer 的核心。从基础 SDPA 出发,扩展到多头(MHA)、因果掩码(Causal)、交叉注意力(Cross)、分组查询(GQA)、滑动窗口(Sliding Window)、线性注意力(Linear)等变体。KV Cache 和 Flash Attention 分别从推理和训练角度优化效率。RoPE 提供相对位置编码。
架构组合层
将基础组件组装为完整模块。GPT-2 Block 是经典 Transformer 解码器块;SwiGLU MLP 是现代 LLM 的前馈网络;ViT Patch Embedding 将图像转为 token 序列;LoRA 实现参数高效微调;MoE 通过稀疏路由扩展模型容量。
训练优化层
覆盖训练全流程。Adam 是最常用的优化器;Cosine LR 提供学习率调度;梯度裁剪防止梯度爆炸;梯度累积模拟大 batch;Kaiming 初始化确保训练起步稳定。
推理解码层
模型部署时的关键算法。Top-k/Top-p 采样控制生成多样性;Beam Search 寻找高概率序列;Speculative Decoding 利用小模型加速大模型推理。
高级主题层
前沿技术。BPE 是主流分词算法;INT8 量化压缩模型体积;DPO/GRPO/PPO 是 RLHF 对齐训练的三种损失函数。
5. 归一化方法对比
| 方法 | 归一化维度 | 是否减均值 | 可学习参数 | 典型场景 |
|---|---|---|---|---|
| LayerNorm | 最后一维(特征) | ✅ | γ, β | Transformer |
| BatchNorm | 第 0 维(批次) | ✅ | γ, β + running stats | CNN |
| RMSNorm | 最后一维(特征) | ❌ | weight | LLaMA, Gemma |
6. 注意力变体对比
| 变体 | 复杂度 | 掩码 | KV 头数 | 典型模型 |
|---|---|---|---|---|
| SDPA | O(S²D) | 无 | — | 基础 Transformer |
| MHA | O(S²D) | 无 | = Q 头数 | BERT, GPT-2 |
| Causal | O(S²D) | 上三角 | = Q 头数 | GPT 系列 |
| GQA | O(S²D) | 可选 | < Q 头数 | LLaMA 2, Mistral |
| Sliding Window | O(S·W·D) | 带状 | — | Longformer, Mistral |
| Linear | O(S·D²) | 无 | — | Linear Transformer |
| Flash | O(S²D) 但省内存 | 可选 | — | 所有现代模型 |
7. RLHF 损失函数对比
| 方法 | 输入 | 核心思想 | 是否需要 reward model |
|---|---|---|---|
| DPO | chosen/rejected 对 | 直接从偏好学习,无需显式 reward | ❌ |
| GRPO | 组内多个回复 + reward | 组内归一化 advantage 的 REINFORCE | ✅ |
| PPO | new/old policy + advantage | 裁剪比率防止策略更新过大 | ✅ |
8. 推荐学习路径
入门路径(基础 → Transformer)
ReLU → Softmax → Linear → LayerNorm → Attention → MHA → Causal Attention → GPT-2 Block现代 LLM 路径
RMSNorm → GQA → RoPE → KV Cache → SwiGLU MLP → Flash Attention → LoRA → MoE训练工程路径
Cross-Entropy → Kaiming Init → Adam → Cosine LR → Gradient Clipping → Gradient AccumulationRLHF 对齐路径
DPO Loss → PPO Loss → GRPO Loss推理部署路径
Top-k/Top-p Sampling → Beam Search → Speculative Decoding → INT8 Quantization → BPE