Skip to content

模型训练

本章覆盖大语言模型从预训练到对齐的完整训练流程,帮助你理解如何将一个随机初始化的模型训练成有用的 AI 助手。

学习路线

主题核心内容预计时间
预训练大规模语料上的自监督训练1-2 周
数据集构建数据收集、清洗、格式化1 周
监督微调 (SFT)指令跟随能力的注入1 周
偏好对齐RLHF、DPO 等对齐技术1-2 周
推理模型O1/R1 范式、PRM、MCTS1-2 周
知识蒸馏大模型能力迁移到小模型1 周

训练三阶段

预训练 (Pre-training)  →  监督微调 (SFT)  →  偏好对齐 (Alignment)  →  推理增强 / 蒸馏
      │                        │                     │                      │
 海量文本学习语言能力     指令数据学习对话格式     人类偏好学习安全有用     推理能力 / 模型压缩

理解这三个阶段的目标差异是把握大模型训练全貌的关键:预训练赋予模型"知识",SFT 教会模型"格式",对齐让模型"听话且安全"。

详细内容索引

agent-rl.md — Agent 强化学习 (757 lines)

  • 在大模型体系中的位置 (L11)
  • 为什么需要 Agent-RL? (L33)
    • 静态对齐的局限 (L35)
    • Agent-RL 的核心洞察 (L47)
  • Agent-RL 核心架构 (L72)
    • 经典 Agent-RL 循环 (L74)
    • 三大核心组件 (L95)
  • 训练算法 (L135)
    • GRPO for Agents (L139)
    • PPO for Agents (L192)
    • GRPO vs PPO:Agent-RL 场景下的选择 (L229)
    • Agent-RL 与文本 GRPO 的关键差异 (L244)
  • Rollout 生成 (L256)
    • 同步 Rollout (L260)
    • 异步 Rollout (L274)
    • SGLang 高吞吐推理 (L321)
    • 多轮轨迹:Agent Rollout 的特殊结构 (L354)
  • 奖励设计 (L384)
    • Rule-based Rewards(规则奖励) (L388)
    • Verifiable Environments (RLVE) (L426)
    • Process Rewards vs Outcome Rewards (L454)
  • 生产级训练框架:slime 架构 (L466)
    • 整体架构 (L470)
    • 三大模块详解 (L487)
    • 参数同步与 Colocate 模式 (L540)
    • 支持的模型 (L562)
  • Agentic Training 的特殊挑战 (L570)
      1. 长轨迹问题 (L574)
      1. 稀疏奖励与信用分配 (L586)
      1. 环境多样性 (L620)
      1. 异步解耦 (L629)
      1. 训练加速 (L640)
  • 实际应用案例 (L648)
    • P1:物理奥赛推理 (L652)
    • RLVE:400 个可验证环境 (L659)
    • TritonForge:训练模型写 GPU Kernel (L667)
    • OpenClaw-RL:个性化对话 Agent (L674)
    • qqr (ArenaRL):开放式 Agent 进化 (L681)
  • Agent-RL vs 传统对齐 (L688)
  • 苏格拉底时刻 (L705)
  • 面试考点 (L717)
  • 推荐资源 (L745)

alignment-advanced.md — 对齐进阶 (345 lines)

  • 在大模型体系中的位置 (L11)
  • Constitutional AI (CAI) (L25)
    • 核心思想 (L27)
    • 宪法示例 (L50)
    • 为什么 CAI 重要 (L60)
  • RLAIF:AI 反馈替代人类反馈 (L74)
    • 从 RLHF 到 RLAIF (L76)
    • RLAIF 的效果 (L104)
    • 局限性 (L112)
  • Reward Hacking (L120)
    • 什么是 Reward Hacking (L122)
    • 为什么会发生 (L135)
    • 缓解策略 (L147)
  • 对齐税(Alignment Tax) (L173)
    • 有用性 vs 安全性的矛盾 (L175)
    • 如何降低对齐税 (L199)
  • 可扩展监督(Scalable Oversight) (L228)
    • 问题定义 (L230)
    • 当前的研究方向 (L236)
  • Red Teaming:对抗测试 (L262)
    • 什么是 Red Teaming (L264)
    • 常见攻击类型 (L268)
    • 自动化 Red Teaming (L278)
  • 苏格拉底时刻 (L314)
  • 常见问题 & 面试考点 (L324)
  • 推荐资源 (L337)

alignment.md — 偏好对齐 (1776 lines)

  • 在大模型体系中的位置 (L11)
  • RLHF 概述 (L27)
    • Bradley-Terry 偏好模型 (L39)
  • Reward Model 训练 (L53)
    • 模型架构 (L55)
    • 训练(含 Margin Loss) (L79)
    • LLaMA 2 的双奖励选择 (L108)
    • 奖励后处理:Whiten + KL 惩罚 (L175)
  • PPO (Proximal Policy Optimization) (L195)
    • RLHF-PPO 需要四个模型 (L199)
    • PPO 训练流程 (L236)
    • 把 KL 惩罚揉进 token 级 reward (L279)
    • GAE 优势估计 (L306)
    • PPO 的两个 loss (L339)
    • 最小可跑 PPO 一步:演示 ratio → clip → GAE → loss 计算链路 (L382)
    • 代码参考:DS-Chat 与 trlx (L484)
  • DPO (Direct Preference Optimization) (L555)
    • 从 RLHF 到 DPO 的数学推导 (L559)
    • DPO 损失的直觉 (L585)
    • PyTorch 实现 DPO (L599)
    • 主流框架的 DPO loss 入口 (L639)
    • 最小可跑 DPO:笔记本本地 < 1 分钟 (L658)
    • DPO 的过拟合问题与 IPO (L769)
  • GRPO (Group Relative Policy Optimization) (L783)
    • GRPO 损失函数 (L787)
    • 步骤 1:Group Sampling(组采样) (L793)
    • 步骤 2:可验证奖励(Verifiable Reward) (L830)
    • 步骤 3:组内相对优势(Group-Relative Advantage) (L858)
    • 步骤 4:GRPO Loss (L885)
    • 工程实现参考 (L922)
    • 最小可跑 GRPO:笔记本本地 < 1 分钟 (L958)
    • 代码参考:minimind 的 GRPO + CISPO 实现 (L1070)
  • GRPO 中的 KL 散度分析 (L1097)
    • 三种 KL 估计方式 (L1101)
    • 为什么 K3 恒为正? (L1113)
    • GRPO 使用 K3 的原因 (L1139)
  • KTO (Kahneman-Tversky Optimization) (L1158)
    • 动机:为什么不需要成对数据? (L1162)
    • 前景理论 (Prospect Theory) 的启发 (L1172)
    • 数学公式 (L1185)
    • 数据格式 (L1210)
    • KTO 损失函数实现 (L1231)
    • KTO vs DPO 对比 (L1284)
  • 各方法对比 (L1303)
  • 更多对齐算法 (L1319)
    • ORPO (Odds Ratio Preference Optimization) (L1323)
    • CPO (Contrastive Preference Optimization) (L1350)
    • RLOO (REINFORCE Leave-One-Out) (L1362)
    • Online DPO (L1374)
    • PRM (Process Reward Model) (L1386)
  • Constitutional AI / RLAIF (L1415)
    • 两阶段流程 (L1421)
    • 宪法原则示例 (L1443)
    • 与 RLHF 的对比 (L1453)
  • TRL 实战:对齐训练实现 (L1468)
    • DPO 训练 (L1472)
    • GRPO 训练 (L1501)
    • PPO 训练 (L1532)
    • 奖励函数设计模式 (L1568)
    • 补充:Rubric as Reward(RaR)—— RLVR 在不可验证领域的推广 (L1603)
    • 补充:RLVER 案例 —— 把"对话效果"操作化为可验证情感分 (L1656)
  • 对齐算法选择指南 (L1695)
  • 苏格拉底时刻 💡 (L1729)
  • 常见问题 & 面试考点 (L1737)
  • 推荐资源 (L1744)
    • 论文 (L1746)
    • 博客与可视化 (L1757)
    • 代码参考 (L1766)

continue-pretraining.md — 继续预训练 (319 lines)

  • 在大模型体系中的位置 (L11)
  • 为什么需要继续预训练 (L29)
    • 通用 LLM 在专业领域的局限 (L31)
    • 一个直观的例子 (L40)
  • CPT vs SFT vs RAG:三种领域适配方案 (L53)
  • 实现:继续预训练的关键技术 (L71)
    • 数据准备 (L73)
    • 学习率策略:低 LR Warmup (L89)
    • 灾难性遗忘的缓解 (L110)
  • 代码示例:基于 HuggingFace Trainer 的 CPT Pipeline (L130)
    • 进阶:课程学习策略 (L236)
  • 领域案例 (L251)
    • 医学领域 (L253)
    • 法律领域 (L260)
    • 代码领域 (L267)
  • 苏格拉底时刻 (L285)
  • 常见问题 & 面试考点 (L299)
  • 推荐资源 (L312)

datasets.md — 数据集构建 (516 lines)

  • 在大模型体系中的位置 (L10)
  • 预训练数据 vs 后训练数据 (L26)
  • 预训练数据集构建 (L41)
    • 数据来源与规模 (L43)
    • 数据清洗流水线 (L57)
  • SFT 数据格式 (L145)
    • Alpaca 格式 (L147)
    • ShareGPT 格式 (L161)
    • OpenAI 格式 (L177)
    • Chat Template (L191)
  • 合成数据生成 (L244)
    • Self-Instruct (L246)
    • Evol-Instruct (WizardLM) (L263)
    • 使用 GPT-4 / Claude 生成数据的最佳实践 (L287)
    • Seed Task 设计 (L295)
    • 质量把控 (L306)
  • 数据增强技术 (L320)
    • Rejection Sampling (L322)
    • Chain-of-Thought 扩展 (L336)
    • 多样性增强 (Persona-driven) (L348)
    • 难度递增 (Auto-Evol) (L360)
  • 偏好数据构建 (L372)
    • Chosen/Rejected pair 的收集 (L374)
    • 人工标注 vs 模型标注 (L388)
    • Bradley-Terry 模型的数据需求 (L398)
  • 数据质量评估 (L412)
    • 自动评估指标 (L414)
    • Reward Model 打分 (L424)
    • 去重与去污染验证 (L438)
  • 苏格拉底时刻 (L463)
  • 常见问题 & 面试考点 (L477)
  • 推荐资源 (L492)
    • 论文 (L494)
    • 博客与技术报告 (L503)
    • 代码参考 (L510)

distillation.md — 知识蒸馏 (634 lines)

  • 在大模型体系中的位置 (L11)
  • 蒸馏的动机 (L29)
    • 为什么需要蒸馏? (L31)
    • 蒸馏的本质:暗知识(Dark Knowledge) (L42)
  • 经典知识蒸馏(Hinton 2015) (L58)
    • 核心框架 (L60)
    • Temperature Scaling (L78)
    • 完整数学推导 (L120)
    • PyTorch 实现 (L167)
  • LLM 时代的蒸馏方法 (L217)
    • 黑盒蒸馏:数据驱动 (L221)
    • 白盒蒸馏:知识深度对齐 (L257)
    • 推理蒸馏:蒸馏 CoT 能力 (L303)
    • On-Policy Distillation:让学生在自己的 rollout 上被打分 (L320)
  • 实用蒸馏流水线 (L334)
    • 数据生成流水线 (L336)
    • 训练策略 (L385)
  • Alpaca / Vicuna 等项目的蒸馏实践 (L407)
    • Alpaca:指令数据蒸馏的先驱 (L409)
    • Vicuna:对话数据蒸馏 (L426)
    • 蒸馏的法律和伦理问题 (L438)
  • 蒸馏 vs LoRA vs 量化 (L449)
  • 代码实战:用 Temperature Scaling 实现简单蒸馏 (L477)
  • 苏格拉底时刻 (L583)
  • 常见问题 & 面试考点 (L591)
  • 推荐资源 (L599)
    • 代码参考:minimind 的白盒蒸馏 (L611)

pretraining.md — 预训练 (1033 lines)

  • 在大模型体系中的位置 (L11)
  • 预训练的本质 (L25)
    • Next Token Prediction 目标 (L27)
    • Causal Language Modeling vs Masked Language Modeling (L108)
    • 预训练赋予模型什么能力? (L120)
  • Scaling Laws (L132)
    • Kaplan et al. (2020) 的发现 (L134)
    • Chinchilla 法则 (L152)
    • 对实践的指导意义 (L173)
    • Scaling Laws 深度:从理论到实践 (L181)
  • 数据准备 (L444)
    • 数据来源 (L446)
    • 数据清洗流水线 (L461)
    • FineWeb 与 RedPajama (L486)
    • 数据配比 (L497)
  • 优化器 (L517)
    • AdamW 详解 (L519)
    • 学习率调度 (L632)
  • Mixed Precision Training (L690)
    • FP32, FP16, BF16 的精度对比 (L692)
    • Loss Scaling 技巧 (L700)
    • 为什么 BF16 比 FP16 更适合训练 (L710)
  • Gradient Checkpointing (L724)
    • 内存 vs 计算的 trade-off (L726)
    • 实现原理 (L732)
  • 训练监控 (L748)
    • 关键指标:loss, grad norm, learning rate (L750)
    • Loss Spike 的处理 (L781)
    • MFU (Model FLOPs Utilization) 的计算 (L791)
  • 预训练实战 (L805)
    • 完整训练配置示例 (L807)
    • 最小可跑预训练:笔记本本地 < 1 分钟 (L843)
    • 训练成本估算 (L947)
  • 苏格拉底时刻 (L964)
  • 常见问题 & 面试考点 (L978)
  • 推荐资源 (L993)
    • 论文 (L995)
    • 数据集 (L1003)
    • 代码参考 (L1007)

reasoning.md — 推理模型 (1294 lines)

  • 在大模型体系中的位置 (L11)
  • 从 System 2 Thinking 到 Test-time Compute Scaling (L29)
  • Reasoning Token 与 Chain-of-Thought (L46)
    • 什么是 Reasoning Token? (L48)
  • Process Reward Model (PRM) (L69)
    • ORM vs PRM (L71)
    • PRM 的数学形式 (L92)
    • PRM 训练数据构建(PRM800K) (L116)
    • PRM 模型架构 (L133)
  • Monte Carlo Tree Search (MCTS) (L161)
    • MCTS 核心思想 (L163)
    • MCTS 四步循环 (L179)
    • 代码示例:简化版 MCTS for LLM Reasoning (L197)
    • MCTS 在推理模型中的应用 (L272)
  • GRPO for Reasoning(DeepSeek-R1 方案) (L283)
    • 无需 Reward Model 的 RL 训练 (L285)
    • R1 多阶段训练的真实细节(论文 §3.2) (L305)
    • 规则奖励函数设计 (L357)
    • "Aha Moment" 涌现 (L389)
    • GRPO 推理训练核心逻辑 (L417)
    • Reward 设计模式:6 个值得收藏的奖励函数 (L463)
  • Qwen3 Hybrid Thinking:思考/直答合一与思考预算 (L644)
  • 推理蒸馏 (L690)
    • 用大推理模型的 CoT 教小模型 (L692)
    • 蒸馏 vs RL 的效果对比 (L710)
  • Scaling Law for Test-time Compute (L719)
  • 代码实战:PRM 训练 + MCTS 搜索 + Best-of-N 采样 (L738)
    • Part 1:PRM 训练代码实战 (L748)
    • Part 2:MCTS 搜索实现——完整四步循环 (L860)
    • Part 3:PRM 引导的逐步验证搜索 (L1049)
    • Part 4:端到端示例——用 MCTS + PRM 解 GSM8K 数学题 (L1133)
  • 苏格拉底时刻 (L1263)
  • 常见问题 & 面试考点 (L1271)
  • 推荐资源 (L1279)
    • 论文与博客 (L1281)
    • 代码参考 (L1291)

rl-basics.md — 强化学习基础 (868 lines)

  • 在大模型体系中的位置 (L11)
    1. RL 核心概念 (L25)
    • 1.1 Agent-Environment 交互 (L27)
    • 1.2 核心术语表 (L46)
    • 1.3 MDP 框架 (L58)
    • 1.4 累积回报 (Return) (L78)
    1. Bellman 方程 (L89)
    • 2.1 Value Function 的递推关系 (L91)
    • 2.2 Bellman 最优方程 (L113)
    • 2.3 代码验证:手算 Bellman 方程 (L129)
    1. 动态规划 (L172)
    • 3.1 Policy Evaluation(策略评估) (L176)
    • 3.2 Policy Iteration(策略迭代) (L184)
    • 3.3 Value Iteration(值迭代) (L190)
    • 3.4 代码:4x4 Grid World 的 Value Iteration (L200)
    1. Monte Carlo 方法 (L253)
    • 4.1 First-Visit MC 估计 Vπ (L257)
    • 4.2 MC 估计 Qπ + epsilon-Greedy 改进 (L300)
    1. 时序差分 (Temporal Difference) (L345)
    • 5.1 TD(0) (L349)
    • 5.2 SARSA(On-Policy TD Control) (L359)
    • 5.3 Q-Learning(Off-Policy TD Control) (L398)
    • 5.4 SARSA vs Q-Learning:On-Policy vs Off-Policy (L435)
    1. DQN:从 Q-Learning 到深度强化学习 (L449)
    • 6.1 为什么需要 DQN? (L451)
    • 6.2 两个关键技巧 (L455)
    • 6.3 DQN 完整实现 (L473)
    1. Policy Gradient (L558)
    • 7.1 从 Value-Based 到 Policy-Based (L560)
    • 7.2 策略梯度定理 (L569)
    • 7.3 对数导数技巧 (Log-Derivative Trick) 推导 (L583)
    • 7.4 REINFORCE 算法 (L623)
    • 7.5 从 REINFORCE 到 PPO 的演化 (L706)
    1. 从 RL 到 RLHF 的桥梁 (L732)
    • 8.1 LLM 生成 = RL 序贯决策 (L734)
    • 8.2 RLHF 的 RL 视角 (L746)
    • 8.3 为什么需要 KL 惩罚? (L768)
    1. RL 方法总览 (L785)
  • 苏格拉底时刻 (L808)
  • 面试考点 (L819)
  • 推荐资源 (L856)

sft.md — 监督微调 (749 lines)

  • 在大模型体系中的位置 (L11)
  • 什么是监督微调? (L23)
    • 预训练模型的"复读机"问题 (L25)
    • SFT 的核心思路 (L41)
  • Full Fine-tuning (L62)
  • LoRA:低秩适配 (L83)
    • 核心原理 (L85)
    • PyTorch 实现 LoRA (L99)
    • 替换模型中的 Linear 层 (L128)
    • 关键参数详解 (L147)
    • 使用 PEFT 库(推荐生产用法) (L163)
  • QLoRA:量化 + LoRA (L181)
    • 三大技术 (L185)
    • 实现 QLoRA 核心:量化线性层 (L191)
    • QLoRA = 量化 + LoRA (L222)
    • Transformers 快捷调用 (L234)
  • SFT 数据集准备 (L257)
    • 数据格式对比 (L259)
    • Chat Template 与 Label Masking(核心思想) (L275)
  • 最小可跑 SFT:笔记本本地 < 1 分钟 (L284)
    • Step 1:准备模型与微型数据集 (L290)
    • Step 2:Tokenize 并对 prompt 段做 label masking (L314)
    • Step 3:Collate + 单步 loss 验证 (L337)
    • Step 4:训练循环 (L356)
    • Step 5:训练前后输出对比 (L378)
  • 训练参数调优指南 (L404)
  • TRL SFTTrainer 实战 (L423)
    • 基本用法 (L427)
    • Chat Template 处理 (L450)
    • 数据格式详解 (L458)
    • Packing(序列打包) (L479)
    • LoRA 集成 (L502)
  • 多轮对话训练 (L525)
    • 数据格式 (L529)
    • 训练要点 (L544)
  • 训练加速与显存优化 (L564)
    • Gradient Checkpointing (L568)
    • Mixed Precision 混合精度训练 (L581)
    • DeepSpeed ZeRO (L596)
    • Gradient Accumulation (L611)
    • Flash Attention (L622)
    • vLLM 集成 (L641)
  • 苏格拉底时刻 💡 (L656)
  • 常见问题 & 面试考点 (L663)
  • 推荐资源 (L670)
    • 论文 (L672)
    • 博客与实证研究 (L678)
    • 代码参考 (L685)
    • 生产级对照:LLaMA-Factory(封装层,非手撕) (L712)