系统性讲解 LLM 推理优化的最佳实践,包括模型部署、性能调优等,对程序员部署 LLM 有直接指导。
它涵盖了 LLM inference 的方方面面,从核心概念和性能指标(如首字节时间和每秒 Token 数),到优化技术(如连续 batching 和前缀缓存),GPU 架构,以及 BYOC 和本地部署等部署模式。
通过交互式计算器、模拟器和可视化工具来探索各个概念。
使用针对你的具体场景量身定制的优化技术来提升性能。
持续更新最新的最佳实践和实战验证的洞察。
LLM inference 的知识往往是零散的;它们埋在学术论文中,散落在各种厂商博客上,隐藏在 GitHub issue 里,或者在 Discord 讨论串中传来传去。更糟的是,其中许多资料都假设你已经理解了整个栈的一半。
很少有资源能够将所有内容整合在一起 — 比如 inference 与 training 的区别、为什么 goodput 对于满足 SLO 比原始吞吐量更重要,或者 prefill-decode 分离在实践中如何工作。
所以我们开始把所有内容汇集在一起。
这本手册面向的是在生产环境中部署、扩展或运维 LLM 的工程师,无论你是在微调一个小型开源模型,还是在自己的栈上运行大规模部署。
如果你的目标是让 LLM inference 更快、更便宜或更可靠,这本手册就是为你准备的。
你可以从头到尾阅读它,也可以把它当作查询表来使用。没有错误的浏览方式。我们将继续更新这本手册,因为 LLM inference 正在快速演变,今天有效的方法可能不是明天最好的方案。
这本手册提供了各种交互式工具,帮助你通过直接尝试这些概念来学习:
LLM Inference Visualizer:浏览请求生命周期,查看 token 如何通过 prefill 和 decode 流动。
LLM Lifecycle Visualizer:查看 training 和 inference 在模型生命周期中的位置,以及 inference 如何在每个请求上运行。
Token-by-Token Decode Loop:逐步执行自回归解码,观看每个新 token 如何扩展序列和 KV cache。
Latency Timeline Visualizer:查看每个 decode 步骤后如何跟随反 tokenization,以及 TTFT、ITL 和 E2EL 跨越哪些阶段。
Context Window Simulator:查看完整对话如何在每轮重新发送并填充上下文窗口。
Latency Metrics Playground:探索 TTFT、E2EL、TPOT 和基于 SLO 的 goodput。
Top-p vs Top-k Filter:比较每个过滤器如何处理尖峰、混合和平坦分布。
Model Explorer:浏览流行的开源 LLM,比较它们的架构、规模、上下文和典型的 GPU 部署。
GPU Comparison Table:将流行的开源 LLM 与合适的 NVIDIA 和 AMD GPU 进行匹配。
GPU Memory Calculator:估算用于 serving LLM 的 VRAM 需求。
Quantization Memory Impact Visualizer:比较不同量化格式的权重内存。
Batching Strategy Simulator:比较静态、动态和连续 batching 的行为。
Chunked Prefill Scheduler:查看整个 prefill 如何暂停活跃的 decode,以及分块如何让它们继续。
KV Cache Memory Calculator:估算 KV cache 消耗多少内存。
GPU Execution and Memory Map:可视化 threads、warps、SM 和 GPU 内存层级如何配合。
我们欢迎贡献!如果你发现错误、有改进建议或想添加新主题,请在我们的 GitHub 仓库中提出 issue 或提交 pull request。