01 基础与全景:先理解计算、资源和请求
这一部分先回答三个问题:模型生成一个 token 做了什么,一次请求消耗哪些资源,用户感受到的“快慢”由什么组成。理解这些,再学习调度、缓存和通信,才能判断某种优化实际省了哪项成本。
先打开设计图册:职责架构、部署、请求运行、状态机和数据模型均有直接可看的图片及说明。
1. 从一次请求建立全景
请求进入服务
→ 分词与排队
→ 调度与资源分配
→ 检查可复用状态
→ 必要时从存储加载并完成传输
→ 计算未覆盖的 Prefill
→ 持续 Decode
→ 返回结果、保留缓存、释放资源
计算、内存、网络和排队互相影响。把 KV 放到远端能增加可保留的容量,但会增加加载成本;做更大的 batch 可能提升吞吐,也可能延长部分请求的等待。学习的目标是能解释这些因果关系。
2. 阅读顺序
| 阶段 | 资料 | 要解决的问题 |
|---|---|---|
| 入门 | 整体介绍 | 请求全链路、系统分层,以及开源组件各处于什么位置 |
| 必修 | 公共概念与算例 | Prefill/Decode、KV、分页、容量、复用条件、性能指标 |
| 数学与张量深读 | Attention 与推理 | Q/K/V 形状、生成过程、权重与 KV 预算 |
| 速查参考 | 计算、内存与并行 | 调度、批处理、GPU 优化、并行与排查顺序的要点总览 |
| 动手 | 互动演示、设计图册 | 改参数看容量与盈亏;用图理解运行、状态和失败路径 |
重复内容怎么处理:前两篇必读,概念以公共概念为准;后两篇只在需要推导或复习时选读,遇到重复部分可以跳过。每篇开头都标了“本篇定位”。
3. 四种容易混淆的资源
| 资源 | 保存或承载什么 | 容量不足时的表现 |
|---|---|---|
| GPU 显存 | 权重、活跃 KV、临时张量与执行工作空间 | OOM、准入受限、抢占和重算 |
| 主机内存 | host cache、staging、元数据、运行时对象 | 内存压力、锁页失败、频繁淘汰 |
| 网络与设备互联 | 跨节点 KV、并行通信、CPU/GPU 拷贝 | 加载排队、通信等待、尾延迟 |
| CPU 与控制路径 | 分词、调度、查目录、对象管理、完成处理 | GPU 等待输入或任务,网络未满却吞吐受限 |
任何“缓存容量”“带宽”或“吞吐”都要注明这一项属于哪层、统计边界在哪里。物理峰值、对象传输速度、模型前向速度和最终服务能力不能直接互换。
4. 验收与下一步
能够独立算每 token KV 字节数;区分 TTFT、ITL 与 goodput;解释为什么保存 KV 之后仍需读取历史状态;举出“缓存命中但请求更慢”的例子。
接着进入推理运行时,学习系统怎样把这些资源约束变成每一轮执行决策。具体框架放在主题内部比较,不需要先按四个项目分别重学基础。