现代Transformer精读-00:导读与系列地图

logo.png

相关:01-模型骨架与前向回路 | 02-RoPE位置编码与YaRN外推 | 03-自注意力机制精读 | 04-稀疏MoE路由与负载均衡 | 05-数据管线与自回归目标设计 | 06-训练工程学 | 07-微调:LoRA与蒸馏 | 08-偏好对齐:DPO与强化学习

本系列用一个轻量级 LLMMiniMind逐行精读现代 Transformer。本篇是目录页特别致谢 MiniMind 开源项目(作者 jingyaogong):它以极简代码承载了现代大模型近乎全部的关键设计,是极佳的阅读对象。

0. 关于本系列

MiniMind 是一个非常优秀的语言模型,在64M的参数体量下,实现了基本的对话和工具使用能力,是初学者接触LLM的一个优秀媒介。在现代GPU下仅需2小时就可以完成基本的训练,同时作者将所有的数据集在modelscope和huggingface开源,非常容易进行复现实验

本系列共 1 篇导读 + 8 篇正文。每篇聚焦一个模块,从基础的Transformer模型出发,把 MiniMind 的代码逐行详解,配以自绘示意图。目标是让大家能够对现代的Transformer模型有更加深刻的认识和理解

1. 为什么选 MiniMind 精读

① 代码短 model_minimind.py 只有 288 行,适合逐行精读。

② 现代化全覆盖 麻雀虽小、五脏俱全。它几乎具备 2024 年代小型 LLM 的全部现代设计

现代设计MiniMind 的位置精读篇
Pre-Norm + 残差流MiniMindBlock01
RMSNormRMSNorm01
SwiGLU FFNFeedForward01
tie_word_embeddingsMiniMindForCausalLM01
RoPE + YaRNprecompute_freqs_cis02
GQAAttention03
QK-NormAttention03
KV Cache / Flash AttentionAttention03
稀疏 MoE + aux lossMOEFeedForward04

③ 能真训真推 train_*.py 覆盖了预训练、SFT、LoRA 微调、DPO、GRPO/PPO、蒸馏全流程(05–08)。作者号称两个小时内可以训练完成,项目提供了开源的数据来源在modelscope和huggingface

2. 关于本系列的结构

篇标题主题核心代码位置关键概念
00导读与系列地图本页––
0101-模型骨架与前向回路总体骨架MiniMindConfig .RMSNorm .Block .ForCausalLM残差流 / Pre-Norm / SwiGLU / tie_weight
0202-RoPE位置编码与YaRN外推位置编码precompute_freqs_cis .apply_rotary_pos_emb旋转数学 / 相对位置 / YaRN
0303-自注意力机制精读注意力Attention .repeat_kvGQA / QK-Norm / Flash / KV Cache
0404-稀疏MoE路由与负载均衡稀疏MoEMOEFeedForward路由 / top-k / aux_loss
0505-数据管线与自回归目标设计训练数据lm_dataset .SFTDataset右padding / -100 / shifted CE
0606-训练工程学训练算法train_pretrain .lr调度warmup / grad accumulation / 分布
0707-微调:LoRA与蒸馏微调model_lora .train_lora .train_distillationLoRA / 蒸馏
0808-偏好对齐:DPO与强化学习对齐train_dpo .train_grpo .rollout_engineDPO / GRPO / PPO

3. 两条线:架构线 vs 训练算法线

系列在结构上分成两条线,架构线是训练线的输入前提(训的是架构线搭出来的模型):

架构线(模型结构)                    训练算法线
─────────────────────                 ─────────────────────
01 骨架与回路 ─┐                         05 数据管线
02 RoPE        ├─ 模型本体               06 训练工程
03 注意力      │   (被训练/微调/对齐)  07 微调
04 稀疏MoE    ─┘                         08 偏好对齐
  • 架构线(01–04):回答模型长什么样、一个 token 如何一步步变成 logits。这是精读的主干,也是理解一切训练算法的地基。
  • 训练算法线(05–08):回答如何把模型从随机权重训成会说话。从数据、优化器、到微调与对齐,逐级而上。

建议阅读顺序:01 → 02 → 03 → 04(架构,顺序依赖)→ 05 → 06(训练)→ 07 → 08(微调与对齐)。

4. 前置知识和部署教程

4.1 前置知识

  • 对PyTorch库和Transformers库有基本了解
  • 了解原版Transformer、GPT、Bert的实现逻辑

4.2 怎么对照代码自己运行

拉取MiniMind仓库代码后新建python虚拟环境并pip install -r requirement.txt即可

python model/model_minimind.py            # 模型本身
python train_pretrain.py                  # 预训练
python eval_llm.py --inference_rope_scaling   # 带 YaRN 推理

5. 系列使用约定

  • 代码引用:正文代码块直接来自 model_minimind.py 等,标注行号;
  • 数学记号:向量/矩阵用大写 ;内积 ;缩放因子 ;
  • 致谢:所有代码、配置与演示均来自 jingyaogong/minimind 开源项目,特此致谢。
  • 本文的代码行数以作者本人拉取时的为准,commit编号为[d65ef2c]