Amit Shekhar
2026-06-14
D
原文
---
title: "LLM 推理优化"
author: "Amit Shekhar"
source_url: "https://outcomeschool.com/blog/llm-inference-optimization"
published_at: "2026-06-14T00:00:00.000Z"
fetched_at: "2026-07-01T23:29:35Z"
updated_at: "2026-07-01T23:32:05Z"
language: "zh"
review_status: "draft"
---
# LLM 推理优化

KV Cache、Paged Attention、Flash Attention、Speculative Decoding 和 Continuous Batching 这类技术,让 LLM 在生产环境中变得更快,也更容易扩展。我们逐个学习这些技术。
## LLM 中的 KV Cache
在这篇文章里,我们会学习 **KV Cache**:**K** 代表 **Key**,**V** 代表 **Value**;也会理解它为什么会用在大语言模型(LLM)里,用来加速文本生成。
我们会先看 LLM 如何一次生成一个 token,理解 Key、Value 和 Query 在模型内部的作用;再通过一个例子看看重复计算的问题;最后一步步看 KV Cache 如何通过保存并复用过去的结果来解决这个问题。
**阅读这里:** [LLM 中的 KV Cache](https://outcomeschool.com/blog/kv-cache-in-llms)
## LLM 中的 Paged Attention
在这篇文章里,我们会学习 **Paged Attention**。这是一种解决 KV Cache 内存浪费问题的技术,可以让 LLM 同时服务多得多的用户。
我们会先快速回顾 KV Cache,理解它带来的内存问题;再通过一个例子看看传统内存分配方式如何浪费空间;最后一步步看 Paged Attention 如何借用计算机管理内存的思路来解决这个问题。
**阅读这里:** [LLM 中的 Paged Attention](https://outcomeschool.com/blog/paged-attention-in-llms)
## 解码 LLM 中的 Flash Attention
在这篇文章里,我们会一块一块拆开 **Flash Attention** 来学习:理解为什么标准注意力很慢,Flash Attention 为什么快,它如何巧妙使用 GPU 内存,以及为什么几乎每个现代大语言模型(LLM)都在使用它。
我们会讲这些内容:
- 快速回顾标准注意力
- 为什么标准注意力很慢
- GPU 内存实际如何工作(HBM vs SRAM)
- Flash Attention 的核心思路
- Tiling:把工作拆成小块
- Online softmax:不构建完整矩阵也能计算 softmax
- 反向传播(backward pass)中的重计算
- Flash Attention 2
- Flash Attention 3
- Flash Attention 的优势和影响
**阅读这里:** [解码 LLM 中的 Flash Attention](https://outcomeschool.com/blog/decoding-flash-attention)
## Grouped Query Attention
在这篇文章里,我们会学习 **Grouped-Query Attention(GQA)**,以及它和 **Multi-Head Attention(MHA)** 有什么不同。
今天我们会讲下面这些主题:
- 快速回顾:Multi-Head Attention(MHA)
- Multi-Head Attention 的问题
- 什么是 Multi-Query Attention(MQA)?
- 什么是 Grouped-Query Attention(GQA)?
- Grouped-Query Attention 如何工作
- GQA 是 MHA 和 MQA 的泛化
- GQA vs MHA vs MQA
- 真实世界用例
- 关于术语的一点说明
- Uptraining:从 MHA 转成 GQA
- 快速总结
**阅读这里:** [Grouped Query Attention](https://outcomeschool.com/blog/grouped-query-attention)
**给你一个小提示**
无论你在哪个技术领域工作,都应该熟悉这些主题:
- LLM
- RAG
- MCP
- Agent
- Fine-tuning
- Quantization
我们把它们整理进了一个视频:
[AI Engineering Explained: LLM, RAG, MCP, Agent, Fine-Tuning, and Quantization](https://www.youtube.com/watch?v=lnfWvX66FUk)
不用现在停下来去看——先收藏,等有时间再看。未来的你会感谢现在的你。
现在,我们回到主题。
## Speculative Decoding
在这篇文章里,我们会学习 **Speculative Decoding**:它是什么,为什么没有它时 LLM 生成会慢,小型草稿模型(draft model)和大型目标模型(target model)如何配合来更快生成 token,能保证质量不下降的拒绝采样(rejection sampling)数学原理,展示 2 倍到 3 倍加速效果的真实数字,它在生产中用在哪里,以及需要注意哪些取舍。
我们会讲这些内容:
- Speculative Decoding 解决什么问题?
- 大图景
- 为什么 LLM 生成很慢?
- Speculative Decoding 的核心思路
- 分步骤演示
- 验证步骤
- 真实数字与加速效果
- 用在哪里
- 取舍
- 快速总结
**阅读这里:** [Speculative Decoding](https://outcomeschool.com/blog/speculative-decoding)
## LLM 中的 Continuous Batching
在这篇文章里,我们会学习 **Continuous Batching**。这是一种让 LLM 服务器在生成的每一步都让 GPU 保持忙碌,从而同时处理更多用户的技术。
我们会讲这些内容:
- 快速回顾:LLM 如何生成 token
- 为什么 Batching 对 LLM 很重要
- 旧做法:Static Batching
- Static Batching 的问题
- 什么是 Continuous Batching?
- 拼车类比
- Continuous Batching 如何一步步工作
- 一个数字例子
- 真实数字与加速效果
- Continuous Batching 的好处
- 几点重要说明
- 快速总结
**阅读这里:** [LLM 中的 Continuous Batching](https://outcomeschool.com/blog/continuous-batching-in-llms)
## Prompt Caching
在这篇文章里,我们会学习 Prompt Caching 是怎么工作的。我们还会看到为什么需要它、它在大语言模型内部到底怎么运作,以及它在 AI 助手和 agent 这类真实系统里会用在哪里。
我们会讲这些内容:
- 什么是 prompt
- 简单回顾一下 LLM 如何读取 prompt
- 什么是 Prompt Caching
- 为什么需要 Prompt Caching
- Prompt Caching 的核心思路
- 精确前缀规则
- cache write、cache read 和 TTL
- 应该把什么放进缓存
- Prompt Caching 的好处
- 真实世界里的 Prompt Caching
**阅读这里:** [Prompt Caching 是怎么工作的?](https://outcomeschool.com/blog/how-does-prompt-caching-work)
## vLLM 是怎么工作的?
在这篇文章里,我们会学习 vLLM 是怎么工作的。我们还会看到为什么需要它、它如何如此巧妙地管理内存,以及它在真实世界里如何用于向很多用户服务大语言模型。
我们会讲这些内容:
- 什么是服务一个 LLM
- 快速回顾 prefill、decode 和 KV cache
- 问题:KV cache 吃掉 GPU 内存
- 为什么朴素服务方式会浪费内存
- 什么是 vLLM
- PagedAttention,核心思路
- PagedAttention 如何共享内存
- Continuous Batching
- OpenAI 兼容 API 服务器
- vLLM 的好处
- 真实世界里的 vLLM
**阅读这里:** [vLLM 是怎么工作的?](https://outcomeschool.com/blog/how-does-vllm-work)
## SGLang 是怎么工作的?
在这篇文章里,我们会学习 SGLang 是怎么工作的。我们还会看到它解决什么问题、它如何让大语言模型服务更快,以及哪些巧妙思路让它显得特别。
我们会讲这些内容:
- 什么是 SGLang
- RadixAttention:SGLang 的核心
- RadixAttention 如何复用过去的工作
- SGLang 的前端语言
- SGLang 中的 Continuous Batching
- 结构化输出和更快解码
- SGLang 更强大的功能
- SGLang 和 vLLM 的对比
**阅读这里:** [SGLang 是怎么工作的?](https://outcomeschool.com/blog/how-does-sglang-work)
准备 AI 工程面试可以看这里:[AI Engineering Interview Questions](https://github.com/amitshekhariitbhu/ai-engineering-interview-questions)
这次就到这里。
谢谢
**Amit Shekhar**
[Outcome School](https://outcomeschool.com) 创始人