如果已经会调用模型 API,接下来很容易遇到两个问题:为什么同时来了几个请求,回答就变慢了?为什么模型权重看起来能放进显卡,训练时却仍然显存不足?
这组笔记沿着这两个问题展开:先理解 vLLM 如何组织生成任务,再理解 DeepSpeed 如何管理训练状态。它们也能帮助理解 Agentic RL 中“生成交互轨迹”和“更新模型参数”的系统开销。
四篇笔记的阅读顺序
| 顺序 | 主题 | 要回答的问题 | 学完后的小产出 |
|---|---|---|---|
| 1 | 本篇 学习路线 | 两个系统分别解决什么问题 | 画出推理与训练的边界 |
| 2 | vLLM 推理原理 | KV Cache 为什么占显存,分页和调度有什么用 | 手算一条序列的 KV 大小 |
| 3 | DeepSpeed 与 ZeRO | 权重之外还有什么,ZeRO 分别切分什么 | 手算四卡训练的状态显存 |
| 4 | 入门实验与 Agentic RL | 如何验证理解,如何连接生成与学习 | 留下一份能复查的实验记录 |
先分清两种工作
推理像已经学会解题的人在回答问题。通常不更新模型参数,但需要计算新 token,并为生成过程保留中间状态。vLLM 提供在线服务和离线批量生成,是学习这一侧的入口。vLLM Quickstart
训练要根据损失调整参数。除了前向计算,还要进行反向传播和优化器更新;DeepSpeed 可以包装 PyTorch 模型,管理分布式训练中的这些步骤。DeepSpeed Getting Started
flowchart TB
A[模型权重] --> B[推理 生成新 token]
A --> C[训练 根据损失更新参数]
B --> D[vLLM 学习入口]
D --> E[KV Cache 与请求调度]
C --> F[DeepSpeed 学习入口]
F --> G[梯度 优化器状态 与 ZeRO]
这是一张学习分工图。DeepSpeed 也有推理能力;这里选择 ZeRO 训练作为入门主线。DeepSpeed 推理教程
先补齐这五个概念
| 概念 | 通俗理解 | 后面会用在哪里 |
|---|---|---|
| token | 模型处理文本的单位,不必等同于一个汉字或单词 | 输入输出长度、吞吐量 |
| 自回归生成 | 根据已有内容继续生成后续 token | Prefill 与 Decode |
| KV Cache | 保留历史 token 的注意力键和值,供后续生成使用 | vLLM 显存估算 |
| 梯度与 Adam | 梯度提供更新方向;Adam 还维护更新所需的历史统计 | 训练为什么比加载权重大 |
| 数据并行 | 不同设备处理不同样本,再协调参数更新 | ZeRO 的切分范围 |
暂时不需要从 CUDA 内核开始。能解释“一次生成保存什么、一次训练更新什么”,就可以继续往下读。
两条显存问题要分开分析
下面是阅读后续内容时可以使用的简化账本,不是显存上限计算器。
| 场景 | 先检查什么 | 还需要预留什么 |
|---|---|---|
| 自回归推理 | 模型权重与活跃序列的 KV Cache | 激活、算子工作区、图捕获、运行时开销 |
| Adam 全参数训练 | 参数、梯度、优化器状态 | 激活、通信缓冲、临时聚合、运行时开销 |
例如,一个 FP16 的 7B 参数模型,单看权重约为 $7\times10^9\times2=14\times10^9$ 字节,即 14 GB。但训练的账本还没有算完;多请求推理的 KV 账本也没有算完。这里 GB 按十进制计算,不能与 GPU 工具中显示的 GiB 直接混用。
与 Agentic RL 的联系
可以先把一个学习循环拆成三个动作:生成轨迹、评价轨迹、更新策略。轨迹不仅是最终答案,还可能包括工具调用、环境反馈和多轮消息。
flowchart TB
A[当前策略权重] --> B[生成回答或工具调用]
B --> C[环境执行并返回反馈]
C --> D{任务是否结束}
D -->|继续| B
D -->|结束| E[整理轨迹与奖励]
E --> F[训练器更新策略]
F --> G[同步新权重到生成侧]
G --> A
这是用于拆解系统的示意图:生成侧可以选择 vLLM,训练侧可以选择 DeepSpeed 或其他后端;具体框架还要负责数据格式、策略版本、权重同步等接口。把两个库装好,并不等于已经实现了 Agentic RL。
可以把后续项目问题定得很具体:同一批任务的生成时间占多少?工具等待占多少?训练和权重同步分别占多少?先把一轮耗时拆开,再讨论优化对象。
建议的学习安排
- 先读第二篇,用纸笔算一次 KV Cache,解释上下文变长和并发增大为什么都会带来压力。
- 再读第三篇,用同一个参数规模比较普通数据并行与三个 ZeRO 阶段。
- 最后按第四篇做最小实验。先验证程序能运行,再固定条件比较配置,每次只改变一个变量。
阅读材料核对日期为 2026 年 10 月 15 日。文中的分页图与显存计算用于解释原理。配套本机实验记录 单独提供设备、版本、原始日志与测量口径,注意区分理论估算和实际分配。