推理优化专栏导览
标签
AI/infra
字数
1230 字
阅读时间
5 分钟
本目录收把训好的模型跑起来对外服务的那一层:请求怎么调度、显存怎么管、算子怎么选、服务怎么部署。
它与相邻专栏的边界是关注点而不是目录层级:
| 不收 | 去哪看 | 本专栏只关心 |
|---|---|---|
| 硬件本身 —— 架构、存储层次、算力与带宽、多卡互联 | GPU 与加速器 | 这两条上限如何决定推理快慢 |
| 在硬件上写 kernel —— 编程模型、访存优化、经典算子 | CUDA 与算子优化 | 该给哪一类 kernel 配什么后端 |
| 用多块硬件训练 —— 框架、切分策略、通信、显存账本 | 训练 | 推理侧的并行目标与训练有何不同 |
换个说法:前三者回答“模型怎么算出来、怎么训出来”,本专栏回答“训完之后怎么把它服务出去”。
数值精度是横切面,写在上层的 01-数值计算与精度:公式在有限精度下会怎么失真,四块都被它约束。
阅读顺序
01 → 05 是一条递进线,按「先定位瓶颈、再逐个攻」排:
| 篇 | 解决什么 |
|---|---|
| 01-推理性能指标与瓶颈定位 | 建立坐标系:TTFT/TPOT/Goodput 怎么定义,算术强度与 Roofline 怎么解释「Decode 为什么打不满算力」 |
| 02-PagedAttention:KV Cache 的分页管理 | 显存怎么存 —— 消灭碎片的按需分块 |
| 03-推理调度:Continuous Batching 与 Chunked Prefill | 请求怎么排 —— 每一步重新组批、长 Prefill 怎么切 |
| 04-前缀缓存:APC 与 RadixAttention | 算过的怎么复用 —— 跳过重复 Prefill |
| 05-Attention 后端与图优化 | 指令怎么少发 —— 把 CPU 发射开销压掉 |
| 06-vLLM 部署、参数与服务特性 | 落到具体引擎:参数、服务特性、生产运维 |
| 07-端侧推理 | 换一种约束:手机、车机、嵌入式 |
08 → 10 是在前面基础上的三种进阶手段,方向各不相同:
| 篇 | 换的是什么 |
|---|---|
| 08-量化 | 用位宽换显存、带宽与算力 |
| 09-Speculative Decoding | 用闲置的算力换串行步数 |
| 10-PD 解耦架构 | 用一次 KV 传输换两阶段的独立调优 |
11 是从「一个实例」上升到「一个集群」的那一层——前面十篇的对象都是单个推理实例(一块或几块卡上的一个引擎),11 讲实例之外:请求怎么进来、怎么分到多个副本、多张卡怎么摆、集群怎么伸缩、出问题按什么顺序查。引擎之间的选型也在这一层的视角下看(矩阵在 06-vLLM 部署、参数与服务特性)。
| 篇 | 解决什么 |
|---|---|
| 11-服务部署架构:集群、路由与运维 | 四层架构、负载均衡与前缀感知路由、多模型路由与级联、弹性伸缩与冷启动、多实例 vs 跨节点 MP、Triton 的位置、监控告警与成本优化 |
02 与 03 必须连着读。 分页给的是「细粒度可回收的显存」,调度要的正是这个;没有分页,动态补位无从谈起。反过来只分页不调度,省下的显存也变不成吞吐。这对关系在本目录里反复出现。
一条贯穿全目录的判据:
Decode 阶段的瓶颈在显存带宽,不在算力。 这一条决定了几乎所有推理优化技术的方向:
- PagedAttention 省的是显存(能塞更多并发请求)
- Continuous Batching / Chunked Prefill 把已经省出的显存变成吞吐与稳定的 TPOT
- 前缀缓存 直接砍掉重复的 Prefill 计算
- Attention 后端与图优化 压掉 Decode 阶段另一重瓶颈 —— CPU 发射指令的开销
硬件侧的推导(算术强度 ≈ 1 FLOP/Byte 与 295 FLOP/Byte 的平衡点)在 01-推理性能指标与瓶颈定位 有完整算例。
相关
- 01-GPU 硬件架构与存储层次 —— 算力与带宽两条上限的硬件侧
- 01-数值计算与精度 —— 量化与低精度推理的数值基础
- 08-FlashAttention —— 推理引擎 Attention 后端的算法层
- 10-KV Cache 与推理优化 —— 模型侧的 KV Cache 显存账本
参考
- https://caomaolufei.github.io/AIInfraGuide/guides/模块四-推理优化/第1章-llm推理基础/11-llm推理基础
- https://docs.vllm.ai/en/latest/
- https://blog.vllm.ai/2025/01/27/v1-alpha-release.html
YJ