Skip to content

Latest commit

 

History

History
457 lines (382 loc) · 12.4 KB

File metadata and controls

457 lines (382 loc) · 12.4 KB

Modern LLM Notebook 课程大纲

更新日期:2026-06-23

Part 总数:5 Notebook 总数:31


Part 1 · Foundation(基础零件)

01-tokenizer-basics.ipynb — 文本与 Tokenizer

  • 本节要点
    1. Token 和 Tokenizer
    1. 字符级 Tokenizer
    1. 词级 Tokenizer
    1. 子词级 Tokenizer
  • 小结
  • 作业

02-bpe-tokenizer.ipynb — BPE:子词词表学习

    1. BPE 快速体验
    1. 对比 GPT-2 的真实 Tokenizer
    1. 工业级 BPE 的关键设计
    1. 训练真实 Tokenizer
  • 小结
  • 作业
  • 附录:一步步还原 BPE 原理

03-embedding.ipynb — Token Embedding 与分布式表示

    1. 从编号到向量
    1. Embedding 查表
    1. 工业界的 Embedding 训练实践
  • 小结
  • 作业
  • 参考资料

04-position-encoding.ipynb — 位置编码

    1. 为什么需要位置信息
    1. 正弦位置编码
    1. 组装:Token Embedding + Position Encoding
  • 附录:Embedding 的缩放惯例
  • 附录:Batch 维度
  • 小结
  • 作业
  • 参考资料
  • 附录:正弦位置编码的外推能力

05-transformer-block.ipynb — Self-Attention 与 Transformer Block

  • 本节要点
    1. Attention 的直觉
    1. Scaled Dot-Product Attention
    1. 因果遮蔽
    1. 多头注意力
    1. FFN:看完上下文之后怎么加工信息
    1. Transformer Block 的组装
  • 小结
  • 附录:RNN 与 Transformer 对比
  • 作业
  • 参考资料

06-mini-gpt.ipynb — Mini-GPT

  • 从零实现 MiniGPT
  • nanoGPT:从教学版到工程实现
  • 小结
  • 作业
  • 参考资料

07-bert-encoder.ipynb — BERT 编码器

    1. 原始 Transformer:Encoder + Decoder
    1. Encoder 与 Decoder
    1. BERT 的输入表示
    1. MLM 预训练
    1. MLM 训练演示
    1. BERT 的微调范式
    1. 真实 BERT 加载演示
    1. BERT 与 GPT 对比
  • 小结
  • 作业

Part 2 · Training(训练)

08-gpt2-to-modern-models.ipynb — 现代架构演进

  • Decoder-Only 架构
  • 教学版 Transformer Block
  • 组件升级
  • 旋转位置编码 RoPE
  • 现代 LLaMA-style Block
  • 多头注意力
  • 三代 Block 演进
  • 小结
  • 作业

09-model-config.ipynb — 模型配置

  • 仓库文件地图:一张表看懂 HuggingFace 仓库
  • config.json:把结构参数变成 PyTorch 模块
  • tokenizer_config.json:控制文本怎么被翻译成数字
  • generation_config.json:控制模型怎么说话
  • 三张表串起来:一个请求的完整旅程
  • 小结
  • 作业
  • 参考资料

10-moe.ipynb — 稀疏专家模型(MoE)

    1. 普通 Transformer 的 FFN 层
    1. MoE 的核心思想
    1. MoE 的参数 vs 计算量
    1. MoE 的训练难题:负载均衡
    1. MoE 的推理难题:所有专家都要加载
    1. 著名的 MoE 模型
    1. 为什么 MoE 有效:参数和计算的分离
    1. MoE 的进阶话题
  • 小结
  • 作业> 可以让 AI 帮忙解释思路,但不建议直接让 AI "做完这道题"。

11-training-loss.ipynb — 训练循环与损失函数

    1. 先建立直觉:Trainer 到底帮你省了什么?
    1. 一条文本样本如何变成训练样本?
    1. Chat Template 为什么会影响 loss?
    1. 手算 Cross-Entropy:loss 到底怎么算?
    1. 一个 batch 进入模型后发生了什么?
    1. 模型 forward:为什么 labels 可以直接传给 model?
    1. 实现一个迷你 Trainer:工业库的核心骨架
    1. 把迷你 Trainer 映射到 Hugging Face Transformers
    1. 把同一条链路映射到 ModelScope ms-swift
    1. 工业训练 loop 的完整流程图
    1. 一个容易混淆的问题:模型内部 shift 还是数据里 shift?
    1. 作业
  • 小结(checklist)

12-scaling-laws.ipynb — 缩放定律

  • 上半场:缩放定律
    1. 幂律分布
    1. Kaplan 缩放定律(OpenAI, 2020)— 「优先增大模型」
    1. Chinchilla 缩放定律(DeepMind, 2022)— 「模型和数据同样重要」
    1. 后 Chinchilla 时代:过度训练反而更好
    1. µP:最大更新参数化
  • 下半场:资源估算
    1. FLOPs 估算
    1. 显存估算
    1. 缩放定律三次范式转变总结
  • 小结
  • 作业> 可以让 AI 帮忙解释思路,但不建议直接让 AI "做完这道题"。

13-distributed-training.ipynb — 分布式训练

    1. 单卡的极限:再算一遍显存账单
    1. 数据并行(DDP)
    1. ZeRO:把冗余切到多卡
    1. FSDP:PyTorch 原生的 ZeRO-3
    1. DeepSpeed:配置驱动的 ZeRO
    1. Accelerate:统一封装
    1. 三层关系总结
  • 小结
  • 作业
  • 参考资料

14-data-engineering.ipynb — LLM 数据工程

    1. 数据 Pipeline 总览
    1. 文本提取:从 HTML 里提取正文
    1. 质量过滤
    1. 去重
    1. 数据混合
    1. 完整 Pipeline 实战:为一个 1B 模型准备数据
    1. 数据质量 > 数量
    1. 工业案例和工具地图
    1. 从 Tokenize 到训练流
    1. 后训练数据:从真实标注到合成数据
  • 小结
  • 作业

15-lora.ipynb — LoRA

    1. 全量微调的成本
    1. 低秩权重更新
    1. LoRA 的前向传播
    1. LoraLinear 实现
    1. LoRA 的验证
    1. 接入 MiniGPT:给 Attention 装 LoRA
    1. 训练演示:用 LoRA 做 SFT
    1. 推理时合并权重
    1. 实践要点总结
    1. QLoRA
    1. 模型合并
  • 小结
  • 作业> 可以让 AI 帮忙解释思路,但不建议直接让 AI "做完这道题"。

16-function-calling.ipynb — 函数调用与工具使用

  • 本节要点
    1. 为什么需要 Function Call
    1. Function Call 的完整流程
    1. 多工具场景
    1. 训练一个支持 Function Call 的模型
    1. 错误处理与失败模式
    1. 现代实践:从 Function Call 到标准化工具调用
  • 小结
  • 作业

17-rlhf-alignment.ipynb — RLHF 与偏好对齐

    1. 为什么需要对齐
    1. 对齐全景图
    1. Stage 1:SFT
    1. Stage 2:Reward Model
    1. Stage 3:PPO
    1. DPO
    1. RLHF vs DPO 对比
    1. LLaMA 2 的完整对齐流程
    1. 对齐的局限性与适用场景
  • 小结
  • 作业> 可以让 AI 帮忙解释思路,但不建议直接让 AI "做完这道题"。

18-mla-kv-cache.ipynb — MLA 与 KV Cache 压缩

    1. KV Cache 的代价:手算一笔账
    1. MHA / GQA / MQA:减少 KV 头数的传统思路
    1. MLA 的核心思想:latent 压缩
    1. 从零实现简化 MLA
    1. KV Cache 实测对比
    1. RoPE 与 MLA 的冲突
    1. MLA 在 DeepSeek-V2 / V3 / Kimi K2 的工程收益
  • 小结
  • 作业

Part 3 · Inference(推理)

19-generation.ipynb — 解码策略

    1. 推理和训练的根本区别
    1. 训练一个能看到效果的模型
    1. Greedy Decoding
    1. Temperature:控制随机性
    1. 采样截断:Top-k 和 Top-p
    1. Beam Search
    1. Repetition Penalty
    1. 对话模板与 System Prompt
    1. 完整生成 Pipeline
  • 小结
  • 作业
  • 参考资料

20-inference-acceleration.ipynb — 推理加速

    1. 推理慢的根源
    1. KV Cache
    1. KV Cache 的内存开销
    1. MHA、MQA、GQA:少存一点 K/V
    1. 模型量化:用更少的位存储权重
    1. GGUF 格式详解
    1. PagedAttention (vLLM)
    1. FlashAttention
    1. 推理的两阶段:Prefill vs Decode
    1. Continuous Batching
    1. 加速手段总结
  • 小结
  • 作业
  • 参考资料

21-quantization.ipynb — 模型量化

    1. 对称量化的回顾与局限
    1. 非对称量化:引入 zero point
    1. 量化粒度:per-tensor / per-channel / per-group
    1. Activation 量化的难点:outlier channels
    1. GPTQ 的直觉:用二阶信息补偿误差
    1. AWQ 的直觉:保护重要通道
    1. 主流量化方案对比
  • 小结
  • 作业
  • 参考资料

22-speculative-decoding.ipynb — 投机解码

    1. 自回归生成的串行瓶颈
    1. 投机解码的完整流程
    1. 接受与拒绝的判定
    1. 多次实验:实际接受率
    1. 实现 Draft 和 Target 模型
    1. 投机解码的完整实现
    1. 加速比分析
    1. 加速比可视化
    1. 投机解码的变体
    1. 适用场景分析
  • 小结
  • 作业
  • 参考资料

23-inference-systems.ipynb — 现代推理系统

    1. 服务指标:吞吐、延迟、并发
    1. KV Cache 碎片问题
    1. PagedAttention:把 OS 分页搬到 KV Cache
    1. Continuous batching:动态拼 batch
    1. Prefix caching:相同前缀的 KV Cache 复用
    1. Prefill / Decode 分离
    1. 主流推理引擎横评
  • 小结
  • 作业

Part 4 · Frontiers(前沿)

24-long-context.ipynb — 长上下文

    1. 什么是外推
    1. 位置编码回顾
    1. 三种位置编码的外推能力
    1. RoPE:用旋转编码相对位置
    1. 从二维推广到 d 维
    1. 直接外推为什么失败
    1. 核心思想:控制角度范围
    1. 方法一:Position Interpolation
    1. 方法二:NTK-aware
    1. 方法三:YaRN
    1. 三大方法一句话总结
    1. 长上下文的验证方法
    1. 工程真相:长上下文不只是算法问题
    1. 实战:4K 扩展到 32K
    1. 实战:ModelScope + NTK 扩展
  • 小结
  • 作业> 可以让 AI 帮忙解释思路,但不建议直接让 AI "做完这道题"。

25-cot-thinking.ipynb — 推理链与 CoT

    1. LLM 的推理缺陷
    1. Chain-of-Thought(CoT)
    1. 从 CoT 到 Thinking 模型
    1. Thinking 模型的训练方法
    1. 训练自己的 Thinking 模型
    1. Thinking 模型的「啊哈时刻」
    1. Thinking 模型的局限性
    1. 主流 Thinking 模型对比
    1. 实操:启动与切换 Thinking 模式
    1. 实战:训练 Thinking 模型
    1. 另一条路:不训练模型,只在推理时多花算力
  • 小结
  • 作业> 可以让 AI 帮忙解释思路,但不建议直接让 AI "做完这道题"。

26-vlm.ipynb — 视觉语言模型(VLM)

    1. LLM 为什么不能直接读图片?
    1. Patchify:先把图片切成小块
    1. Patch Embedding:再把小块变成向量
    1. 视觉 token 怎么和文本 token 融合?
    1. 还差一个 Projector:把视觉空间翻译到语言空间
    1. 三种主流 VLM 架构
    1. 图片为什么很“贵”?
    1. 训练 VLM:为什么要冻结?
    1. 工程细节:特殊 token、位置编码、多分辨率
    1. 极简 VLM 实现
  • 小结
  • 作业

27-efficient-attention.ipynb — 高效 Attention:O(N²) 问题的两条路线

    1. $O(N^2)$ 瓶颈:手算 attention 计算量
    1. 路线 A:Linear Attention(换计算顺序)
    1. 路线 B:Sparse Attention(保留 softmax,少算对)
    1. 两条路线的横向对比
    1. Hybrid 架构:linear + softmax 混合
  • 小结
  • 作业

Part 5 · Production(生产部署)

28-evaluation.ipynb — 评测方法论

    1. 评测全景
    1. 核心评测框架 & Repo 推荐
    1. OpenAI-Compatible API 评测实战
    1. LLM-as-Judge:用 强模型当裁判
    1. 评测结果的汇总与对比
    1. AlpacaEval 实战
    1. 专项评测
    1. LLM-as-Judge 的偏差与一致性
    1. 评测指标体系
    1. 常见坑与最佳实践
    1. 实战速查
  • 小结
  • 作业

29-distillation.ipynb — 知识蒸馏

    1. 蒸馏的本质
    1. 方法一:Logit 蒸馏(最经典)
    1. 方法二:数据蒸馏(最容易落地)
    1. 方法三:特征蒸馏(进阶)
    1. 实战:蒸馏 7B 模型
    1. 蒸馏与 OPD 对比
    1. 蒸馏的常见问题
  • 小结
  • 作业

30-opd.ipynb — 在线策略蒸馏(OPD)

  • 模型输出分布
  • SFT:向外部数据分布模仿
  • RL:在自身行为中筛选高价值方向
  • OPD:在自身轨迹上接受教师纠偏
  • 三者核心区别
    1. 知识蒸馏回顾
    1. 四种训练方式对比
    1. 问题根源:Exposure Bias(暴露偏差)
    1. OPD 的解决方案:在自己的轨迹上学习
    1. 数学本质:Forward KL vs Reverse KL
    1. OPSD:不需要外部 Teacher 的 OPD
    1. 三种信号粒度:老师告诉你多少信息
    1. 当只能用 sampled-token:KL 估计器
    1. 完整 OPD 训练流程(串起来)
    1. OPD 为什么现在才火
    1. 论文速览(截至 2026-05)
    1. 论文全景:怎么分类看 OPD
    1. 分类维度:从两个角度理解 OPD 生态
    1. OPD 的工业落地
    1. 从训练到上线:模型格式与部署工具
  • 小结
  • 作业> 可以让 AI 帮忙解释思路,但不建议直接让 AI "做完这道题"。

31-llm-deployment.ipynb — 模型部署

    1. 为什么不直接用 HuggingFace transformers
    1. PagedAttention 与 RadixAttention:两种 KV Cache 管理思路
    1. 准备模型:Qwen2.5-0.6B
    1. vLLM 离线推理:LLM 类
    1. vLLM 启动 OpenAI 兼容服务
    1. 用 SGLang 部署同一个模型
    1. vLLM 与 SGLang 选型
    1. 部署自训练模型:核心障碍
    1. 路径 A:通过 transformers 注册
    1. 路径 B:在 vLLM 内部直接注册
    1. 自定义词表
    1. 端到端:把 MiniGPT 部署起来
  • 小结
  • 作业