图书简介:
第1章 大模型推理技术演进与挑战 1
1.1 大模型推理的核心痛点 1
1.1.1 内存墙问题与KV缓存优化需求 3
1.1.2 推理延迟与吞吐量的平衡难题 9
1.1.3 多样化部署场景的适配挑战 16
1.2 主流推理框架技术谱系 20
1.2.1 从HuggingFace Transformers到专用推理引擎 21
1.2.2 vLLM与SGLang的技术定位 25
1.3 本书技术选型逻辑 30
本章参考文献 31
第2章 vLLM核心技术解析 32
2.1 vLLM架构与设计哲学 32
2.1.1 整体架构概览 32
2.1.2 vLLM设计哲学的三大原则 34
2.1.3 PagedAttention机制深度剖析 36
2.1.4 连续批处理的原理 42
2.1.5 KV缓存管理策略 46
2.2 vLLM性能优化技术 53
2.2.1 算子融合与CUDA内核优化 54
2.2.2 张量并行与流程并行实现 63
2.2.3 投机解码支持 70
2.3 OpenAI兼容接口与服务接入 76
第3章 SGLang核心技术解析 80
3.1 SGLang架构与创新理念 81
3.1.1 结构化生成语言的设计哲学 81
3.1.2 RadixAttention共享前缀优化机制 87
3.1.3 程序化提示工程范式 91
3.2 SGLang的独特优化技术 93
3.2.1 约束解码的实现原理 94
3.2.2 多轮对话上下文管理优化 100
3.3 SGLang的编程模型 108
第4章 vLLM与SGLang技术对比 114
4.1 性能维度分析 114
4.1.1 KV缓存管理的两种哲学 115
4.1.2 批量吞吐:数据、原因与边界条件 116
4.1.3 延迟的多维分解与尾延迟控制 118
4.1.4 前缀感知调度的定量收益模型 119
4.1.5 内存效率与硬件适配范围 121
4.2 功能特性对比 122
4.2.1 结构化输出:从提示工程到约束解码 123
4.2.2 前缀共享:自动化程度与操作模型 129
4.2.3 服务接口、模型支持与分布式能力 132
4.3 场景驱动的选型决策框架 134
4.3.1 以工作负载特征为第一判断依据 134
4.3.2 硬件环境对选型的约束 137
4.3.3 团队与组织因素 138
4.3.4 混合部署:适用条件与完整成本评估 140
4.4 工程实践:部署、监控与长期维护 141
4.4.1 部署配置:关键参数与常见陷阱 141
4.4.2 监控体系的建立 143
4.4.3 版本管理与长期维护 145
本章参考文献 147
第5章 基础环境搭建与性能基准测试 148
5.1 项目背景与目标 148
5.1.1 验证目标:建立性能基线 148
5.1.2 理论印证:从假设到实验的方法论 151
5.2 环境准备与依赖配置 153
5.2.1 CUDA与PyTorch基础环境配置 153
5.2.2 vLLM与SGLang分别安装部署 155
5.2.3 测试数据集设计与准备 159
5.3 测试框架架构设计 161
5.3.1 设计约束与技术方案选择 162
5.3.2 公共指标数据结构 164
5.3.3 统一资源监控模块 166
5.3.4 统一测试引擎 168
5.4 框架测试实现与执行 171
5.4.1 vLLM服务器配置与启动 171
5.4.2 SGLang服务器配置与启动 173
5.4.3 完整测试执行流程 174
5.4.4 结果对比分析工具 176
5.5 效果验证与实践复盘 177
5.5.1 预期结果分析与理论对照 177
5.5.2 数据可视化方法 179
5.5.3 常见问题与排查方法 180
5.5.4 测试方法论总结 182
第6章 实战项目1:高并发API服务(vLLM生产部署) 184
6.1 需求分析与技术方案推导 184
6.1.1 业务约束的量化 184
6.1.2 框架选型的量化推导 186
6.1.3 系统架构设计 188
6.2 项目准备 189
6.2.1 模型选择与量化方案决策 189
6.2.2 vLLM服务配置详解 191
6.2.3 服务启动验证 193
6.3 核心实现 197
6.3.1 FastAPI网关 197
6.3.2 输入截断的实现细节 204
6.3.3 Nginx配置 206
6.3.4 Prometheus监控体系 207
6.4 优化迭代 209
6.4.1 基线测试与性能分析 209
6.4.2 第一轮优化:max-num-seqs的机制与寻优 211
6.4.3 第二轮优化:提升GPU利用率 213
6.4.4 第三轮优化:长尾延迟的根因分析与处置 215
6.5 效果验证 217
6.5.1 验证方法论:如何判断测试结果是可信的 217
6.5.2 完整优化路径的对比验证 217
6.5.3 Grafana监控面板配置 219
6.6 场景延伸:多模型部署与灰度发布 220
6.6.1 多模型部署的方案对比 220
6.6.2 灰度发布的决策框架 222
第7章 实战项目2:结构化数据提取系统(SGLang优势场景) 225
7.1 项目需求与技术方案 225
7.1.1 场景:简历信息批量结构化提取 225
7.1.2 约束解码与前缀缓存的实际价值 228
7.1.3 技术选型:SGLang + Pydantic + JSON Schema 230
7.2 项目准备 233
7.2.1 SGLang服务部署 233
7.2.2 简历数据集构建 236
7.2.3 Pydantic数据模型定义 238
7.3 核心实现 243
7.3.1 SGLang约束解码提取流程 243
7.3.2 JSON Schema生成与字段验证 246
7.3.3 批量处理流程 247
7.4 优化迭代 250
7.4.1 提示工程优化 250
7.4.2 结构化输出的容错处理 252
7.4.3 RadixAttention前缀缓存效果验证 254
7.5 效果验证 255
7.5.1 提取准确率评估 255
7.5.2 处理速度基准测试 258
7.5.3 前缀缓存命中率分析 259
7.6 场景延伸 261
7.6.1 合同条款智能审查 261
7.6.2 医疗报告结构化分析 262
7.6.3 金融舆情实体抽取 263
第8章 实战项目3:多轮对话Agent系统 265
8.1 项目需求与技术方案 265
8.1.1 场景:旅游规划智能助手 265
8.1.2 技术选型 270
8.2 项目准备 271
8.2.1 ChatGLM-3-6B模型选择、部署与能力验证 271
8.2.2 工具集成的核心设计原则 274
8.2.3 对话状态管理设计 277
8.3 核心实现 282
8.3.1 SGLang声明式对话流程编排 282
8.3.2 工具调用决策链路实现 291
8.3.3 上下文窗口滑动管理 295
8.4 优化迭代 299
8.4.1 对话策略优化 299
8.4.2 自动前缀缓存效率验证 306
8.5 效果验证 310
8.5.1 任务完成率超过90% 310
8.5.2 缓存复用收益:推理成本降低40% 312
第9章 实战项目4:实时视频内容理解推理加速 314
9.1 项目需求与技术方案 314
9.1.1 场景定义 314
9.1.2 瓶颈分析与四层优化路径 315
9.1.3 技术选型 317
9.2 项目准备 317
9.2.1 模型准备 317
9.2.2 视频帧提取与多模态消息构建 319
9.2.3 延迟测量框架与多模态推理基线 321
9.3 核心实现 323
9.3.1 优化层1:FlashAttention-2集成 323
9.3.2 优化层2:visual token压缩 324
9.3.3 优化层3:跨帧KV缓存前缀复用 326
9.3.4 优化层4:多模态投机解码 327
9.4 优化迭代 328
9.4.1 visual token数量与延迟—精度的权衡分析 328
9.4.2 投机解码k值扫描 330
9.4.3 多路并发与动态批处理协调 331
9.5 效果验证 333
9.5.1 消融实验:各优化项独立贡献量化 333
9.5.2 综合评估:延迟—吞吐量—精度三维权衡 335
9.5.3 能耗效率分析(token/Watt) 335
本章参考文献 337
第10章 实战项目5:混合架构生产系统(双框架系统) 338
10.1 项目需求与技术方案 338
10.1.1 场景:企业级AI平台的多场景融合需求 338
10.1.2 技术背景:推理框架与Kubernetes的深度耦合关系 340
10.1.3 技术选型与版本基线 343
10.2 项目准备 345
10.2.1 Kubernetes集群节点规划与模型权重预加载 345
10.2.2 资源配额与优先级设计 348
10.2.3 网关选型与基础路由配置 350
10.3 核心实现 353
10.3.1 vLLM服务部署与自动扩/缩容 353
10.3.2 SGLang任务专用Pod部署 355
10.3.3 智能路由策略 358
10.4 系统层优化 362
10.4.1 跨框架负载均衡算法 362
10.4.2 故障转移与降级策略 364
10.5 资源层优化 367
10.5.1 Spot实例混合调度机制 367
10.5.2 成本模型与资源利用率分析 371
10.6 效果验证 373
10.6.1 端到端可用性监控体系 373
10.6.2 统一监控视图与告警规则 376
10.6.3 故障注入测试方案 378
第11章 实战项目6:长文本处理优化(前缀缓存深度应用) 381
11.1 项目需求与技术方案 381
11.1.1 场景定义 381
11.1.2 模型选型的依据 384
11.1.3 张量并行策略选型 384
11.1.4 完整的四层前缀结构方案 385
11.2 项目准备 385
11.2.1 长文本数据集构建 385
11.2.2 内存预算规划 389
11.2.3 基线性能测试 391
11.3 核心实现 393
11.3.1 SGLang RadixAttention 393
11.3.2 vLLM块级前缀缓存 396
11.3.3 两种缓存实现的结构性差异 397
11.3.4 缓存命中率监控体系的构建 399
11.4 优化迭代 401
11.4.1 前缀分段策略 401
11.4.2 缓存淘汰策略调优 403
11.4.3 缓存容量上限的边界场景与降级策略 404
11.4.4 多文档并行处理流程设计 406
11.5 效果验证 408
11.5.1 实验条件与命中率统计方法 408
11.5.2 端到端吞吐量与处理延迟的对比 410
11.5.3 显存占用基准分析 411
第12章 实战项目7:基于vLLM的DeepSeek-V4长上下文推理服务 413
12.1 百万Token时代的推理工程挑战 413
12.2 DeepSeek-V4架构要点与vLLM适配分析 414
12.3 环境准备与模型部署 418
12.4 长上下文服务配置调优 421
12.5 生产场景:长文档问答服务 423
12.6 性能基准与瓶颈分析 427
第13章 性能调优实战指南 430
13.1 系统级性能瓶颈诊断 430
13.1.1 GPU性能剖析工具链 430
13.1.2 PyTorch Profiler与应用层追踪 433
13.1.3 常见性能反模式的识别与根治 438
13.2 框架参数调优决策树 441
13.2.1 vLLM关键参数影响矩阵 441
13.2.2 SGLang配置项优化路径 444
13.2.3 硬件资源配比黄金法则 447
13.3 生产环境监控与告警 449
13.3.1 关键指标体系构建 450
13.3.2 异常检测与根因分析 452
13.3.3 容量规划与成本预测 456
第14章 技术演进趋势与未来展望 459
14.1 推理系统的架构范式演进 459
14.1.1 预填充—解码分离 459
14.1.2 混合专家模型的大规模部署 460
14.1.3 超长上下文的内存系统重构 461
14.1.4 硬件—软件协同设计的新范式 462
14.2 SGLang与vLLM的路线分歧与生态格局 463
14.2.1 两大框架的技术路径分析 463
14.2.2 生态格局重塑 464
14.2.3 商业化与开源并轨 464
14.3 推理系统研究前沿 465
14.3.1 推理时计算的调度挑战 465
14.3.2 KV缓存压缩的系统权衡 466
14.3.3 Agentic推理的架构需求 466
14.4 从工程实践到系统研究 467
14.4.1 生产观测反哺研究的方法论 467
14.4.2 开源贡献的高价值切入点 467
14.4.3 持续跟踪前沿的资源体系 468
展开
从“能跑”到“能用”:让大模型推理真正落地
如果你已经尝试将大模型部署到实际项目中,那么大概率会遇到这样的情况:大模型在实验室环境中效果不错,一旦上线稍有并发,延迟就迅速飙升;GPU显存明明富余,利用率却常年徘徊在三四成;换了好几个推理框架,参数也反复调优,性能瓶颈却始终难以定位;做技术选型的时候,手头只有几篇评测文章,心里根本没底。
这些问题的根源,并不在于大模型不够强,而在于如何让大模型在真实生产环境中稳定、高效地运行,这是一件远比“跑通?demo”复杂得多的事。这本书要解决的,正是从大模型“能跑”到推理服务“能用、能扛、能优化”的问题。
2022年年底,ChatGPT的出现开启了大模型应用的爆发式增长。短短几年,大模型能力不断跃迁,工程落地的复杂度也随之急剧攀升。如今,如何在有限的资源下高效部署大模型、如何支撑高并发访问、如何在不同场景中做出合理的技术选型,是摆在开发者和企业面前的核心挑战。
在过去两年的大模型落地实践中,我也反复踩过这些坑。最初使用Transformer进行推理,很快便遭遇开发瓶颈;随后转向?TensorRT-LLM,又被复杂的转换流程和生态限制所困;直到接触vLLM与SGLang,才真正看到推理性能优化的新路径——通过对底层机制进行设计,而非简单的参数调优,来显著提升系统效率。
但新的问题也随之出现。现有资料大多停留在“如何使用”的层面,很少回答“为什么这样设计”和“在什么场景下更优”的问题,当系统在生产环境中出现性能问题时,开发者依然缺乏可以依赖的方法论。本书的写作初衷,正是填补这一空白。
本书特色
本书试图打通理论与实践的断层:不只讲“怎么用”,更讲“为什么这样设计”;不只给出demo,更提供可以复现真实问题的完整项目;不只展示结果,更强调过程中的决策与权衡。
全书以“理论→实战→验证→总结”的闭环展开,其中超过60%的内容为实战项目。书中的7个项目均来自对真实场景的抽象,覆盖高并发推理、结构化输出、复杂编排、推理加速与分布式部署等关键问题。你不仅可以运行这些项目,还可以理解它们为什么这样实现,以及在什么情况下需要做出不同选择。
为谁而写
与其列出一张读者画像的清单,不如直接问几个问题——大模型上线后性能不达预期,你能说清楚瓶颈在哪吗?面对vLLM和SGLang的选型决策,你有没有一套系统的评估依据,还是只依靠“感觉”?推理服务在高峰期出现OOM或吞吐量下降,你有没有一套可以复用的排查和调优方法?已经跑通了第一个demo,但真实部署和教程之间的那道鸿沟,你是否找到了跨过去的路?
如果以上任何一个问题让你感到熟悉,那么本书就是为你准备的。
本书不假设你需要从头补课,而是假设你已经在一线摸爬滚打,只是还缺少一本把原理、工具与场景真正打通的参考书。无论你是算法工程师、架构师、后端工程师,还是正在向生产级部署迈进的独立开发者,书中的内容都指向同一个目标:让你在遇到推理系统的真实问题时,有据可依,而不是凭感觉猜测。
如何使用本书
本书的内容组织遵循“理论递进、实战并行”的原则,共分为3部分。
第1~4章(理论基础部分)建议按顺序阅读。第1章勾勒大模型推理的整体技术图景,第2、3章分别深入vLLM与SGLang的内核机制,第4章从量化方法与框架对比两个维度为技术选型提供系统性依据。即使你急于上手项目,也请至少浏览第4章的对比矩阵,它能帮你在动手之前建立清醒的全局认知。
第5~12章(实战项目部分)可以根据实际需求选择性阅读。第5章是所有项目的基础,建议优先完成;第6~12章的7个进阶项目各有侧重,覆盖高并发推理、结构化输出、复杂编排、推理加速、分布式部署与生产级混合架构等核心场景,对照自身业务按需取用即可。
第13~14章(进阶优化与展望部分)适合在完成至少两个实战项目后再读。此时,你已对性能调优有切身体会,能更深刻地理解系统级优化方法论,也能更从容地形成自己对技术演进趋势的判断。
所有代码示例与配置文件均托管在本书配套的GitHub仓库中(/thu/vLLM-SGLang- book)。我强烈建议读者亲自运行每一个项目,并尝试修改参数,观察结果的变化——这是将知识真正内化的最有效方式,没有之一。
致谢与期待
这本书从动笔到今天,跨越了推理系统领域变化最剧烈的一段时光。书稿的某些章节在写完不久就需要更新,某些当时被视为“新兴方向”的技术,等到出版时可能已经是生产标配。本书付梓之际,DeepSeek-V4刚刚发布,再度引发业界广泛关注——这不过是这两年间无数次技术跃迁中最新的一次。
面对这样的节奏,我想对正在读这本书的你说:跟踪约束比跟踪技术更重要。具体的算法会过时,具体的框架会重写,但识别系统中真正的瓶颈在哪里、由什么决定以及改变它需要付出什么代价——这种判断力是可以跨越版本周期的。本书力求提供的,正是这样一套能够跨版本、跨工具迁移的思维与方法。技术细节难免随版本更新而变化,我会持续发布勘误并补充内容,欢迎你通过GitHub Issues反馈问题与建议。
本书的完成离不开开源社区的支持。感谢vLLM和SGLang团队创造了如此优秀的工具,感谢无数开发者在GitHub上的无私分享。
特别感谢电子工业出版社的策划编辑郑柳洁女士,她的专业眼光与悉心指导贯穿了本书从选题策划到出版的全过程,没有她的鼓励与推动,这本书难以如期与读者见面。
本书止于文字所能触及的边界。从理论到实践,从困惑到自信,从选型到落地——希望它能成为你大模型推理之旅的可靠向导。而你真正的学习,从合上这本书的那一刻才开始。
展开