进阶系列设计:mini-vllm-tutorial advanced/ 子系列
- 日期: 2026-07-15
- 状态: 设计已确认,待写实现计划
- 背景: 主系列(step01–20)对照知乎《大模型推理核心概念与术语总结》分析后,有 16 项推理优化手段未覆盖。本设计新增一个进阶子系列补齐。
1. 目标
在主系列基础上,新增 16 步进阶教程,覆盖主系列缺失的推理优化技术。风格与主系列一致:每步独立可运行、增量清晰、注释详尽、README 含 ASCII 图解与"教学版 vs 真实框架"对比。尽可能通俗易懂、循序渐进。
2. 非目标 (YAGNI)
- 不替换或重写主系列任何现有步骤。
- 不追求生产级性能(仍用 TinyTransformer 教学,模型小、CPU 可跑)。
- 不实现真正的多机分布式训练/推理框架,分布式类步骤用单机模拟器讲清原理。
3. 目录与编号
- 新建
advanced/目录,内部从adv01起独立编号,与主系列物理隔离。 - 自带
advanced/README.md:学习路线 + Phase 分组 + 与主系列的衔接说明。 - 顶层
README.md末尾追加一行指针:→ 进阶系列见 advanced/README.md。 - base model 复用:
advanced/advXX/model.py用 importlib 从../step07_kvcache_for_single_request加载TinyTransformerWithKVCache,沿用主系列step12_paged_attention/scheduler.py的 shim 写法,避免循环导入。
4. 16 步清单
代码深度:🟢 = 真代码可跑;🟡 = 模拟器/图解(单机 CPU 难以真实实现,用 Python 模拟讲清原理)。
Phase A — 精度与采样进阶
adv01量化 Quantization (W4A16 / W8A16) 🟢- weight-only 量化,在 TinyTransformer 上做 INT8/INT4 权重量化+反量化,测显存占用与速度。
adv02采样进阶 (MinP / Frequency·Presence·Repetition Penalty / Beam Search) 🟢- 扩展 step06,新增 MinP、三种惩罚项、Beam Search。
Phase B — 解码加速
adv03投机解码 Speculative Decoding 🟢- 草稿模型(更小 transformer)+ 目标模型验证/接受,演示 decode 2–3×。
adv04Flash-Decoding (+ FlashInfer 简介) 🟡- 长序列 decode 的 split-K 切分原理演示,简介 FlashInfer 库定位。
Phase C — 缓存结构进阶
adv05Radix Attention + Copy-on-Write 🟢- 基数树组织 KV cache 实现自动前缀复用 + 写时复制,对比主系列 hash+ref_count 方案。
Phase D — 并行进阶(承接主系列 step17 TP)
adv06Pipeline Parallel (PP, 微批次 / 1F1B) 🟡adv07Sequence Parallel (SP, 序列维切分) 🟡adv08Data Parallel + DPLB (多副本 + 负载均衡) 🟢(Python 调度模拟)adv09TBO/DBO (计算-通信重叠) 🟡
Phase E — 分离式架构
adv10PD Disaggregation (Prefill/Decode 分离) 🟡adv11AFD (Attention-FFN 分离) 🟡
Phase F — 模型架构变体
adv12MoE + EPLB (Top-k 路由 + 专家负载均衡) 🟢(小 MoE 层)adv13Linear Attention / SSM (线性注意力) 🟢
Phase G — 服务与输出控制
adv14Multi-LoRA (多适配器动态切换) 🟢adv15Guided Decoder (JSON / regex 结构化输出) 🟢adv16Function Call / Tool Call 🟢(基于 adv15)
5. 每步文件结构(与主系列一致)
advanced/advXX_name/
README.md ← 教学目标 / 问题 / 原理(ASCII 图)/ 实现细节 / 真实框架对比 / 运行 / 下一步
run.py ← 可独立运行,结尾打印 "✅ advXX_name 通过"
*.py ← 核心实现(model.py 多为复用 step07 的 shim)README 固定含"教学版做法"vs"真实 vLLM/SGLang 做法"对比段落,延续主系列风格。
6. 排序理由
从"可直接在现有模型上跑的改写"(量化、采样)起步 → 解码加速 → 缓存结构 → 并行(承接 TP)→ 架构分离 → 模型变体 → 服务层。每步只引入一个新概念,前置依赖都已在前面铺好。
7. 依赖与运行环境
- 主系列 CPU 环境(torch)足以跑完所有 🟢 步骤。
- 🟡 模拟器步骤只用 torch + 标准库,不引入真分布式依赖。
- 不新增
requirements.txt(全部基于现有 torch)。若后续 adv12/adv13 需额外包,届时再加并在此更新。
8. 顶层改动
- 新增
advanced/整个目录(16 个 step 子目录 + 1 个advanced/README.md)。 - 顶层
README.md末尾追加进阶系列指针(一行)。 - 顶层
SUMMARY.md可选追加"进阶系列索引"小节(实现完成后再补)。
9. 验收标准
- 每个 advXX 目录
python run.py能跑通并打印通过标记。 - 每个 README 含:教学目标、ASCII 原理图、教学版 vs 真实框架对比、运行说明。
- 不破坏主系列现有步骤(重命名后 step07/08/09 importlib 链仍 OK)。
- 顶层 README 含进阶系列指针。
10. 风险与备注
- 🟡 模拟器步骤的"速度提升"是模拟出来的,README 需诚实标注为原理演示而非真实加速。
- adv10/adv11 的 KV/激活跨"设备"传递用模拟时延注入,不跨真进程(除非后续决定升级为多进程)。
- adv03 投机解码的草稿模型可用更小 transformer 或同模型浅层近似,需在 README 说明取舍。