
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
LLM 中的 Paged Attention
在这篇文章里,我们会学习 Paged Attention。这是一种解决 KV Cache 内存浪费问题的技术,可以让 LLM 同时服务多得多的用户。
我们会先快速回顾 KV Cache,理解它带来的内存问题;再通过一个例子看看传统内存分配方式如何浪费空间;最后一步步看 Paged Attention 如何借用计算机管理内存的思路来解决这个问题。
阅读这里: LLM 中的 Paged Attention
解码 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
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
给你一个小提示
无论你在哪个技术领域工作,都应该熟悉这些主题:
- LLM
- RAG
- MCP
- Agent
- Fine-tuning
- Quantization
我们把它们整理进了一个视频:
AI Engineering Explained: LLM, RAG, MCP, Agent, Fine-Tuning, and Quantization
不用现在停下来去看——先收藏,等有时间再看。未来的你会感谢现在的你。
现在,我们回到主题。
Speculative Decoding
在这篇文章里,我们会学习 Speculative Decoding:它是什么,为什么没有它时 LLM 生成会慢,小型草稿模型(draft model)和大型目标模型(target model)如何配合来更快生成 token,能保证质量不下降的拒绝采样(rejection sampling)数学原理,展示 2 倍到 3 倍加速效果的真实数字,它在生产中用在哪里,以及需要注意哪些取舍。
我们会讲这些内容:
- Speculative Decoding 解决什么问题?
- 大图景
- 为什么 LLM 生成很慢?
- Speculative Decoding 的核心思路
- 分步骤演示
- 验证步骤
- 真实数字与加速效果
- 用在哪里
- 取舍
- 快速总结
阅读这里: 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
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 是怎么工作的?
vLLM 是怎么工作的?
在这篇文章里,我们会学习 vLLM 是怎么工作的。我们还会看到为什么需要它、它如何如此巧妙地管理内存,以及它在真实世界里如何用于向很多用户服务大语言模型。
我们会讲这些内容:
- 什么是服务一个 LLM
- 快速回顾 prefill、decode 和 KV cache
- 问题:KV cache 吃掉 GPU 内存
- 为什么朴素服务方式会浪费内存
- 什么是 vLLM
- PagedAttention,核心思路
- PagedAttention 如何共享内存
- Continuous Batching
- OpenAI 兼容 API 服务器
- vLLM 的好处
- 真实世界里的 vLLM
阅读这里: vLLM 是怎么工作的?
SGLang 是怎么工作的?
在这篇文章里,我们会学习 SGLang 是怎么工作的。我们还会看到它解决什么问题、它如何让大语言模型服务更快,以及哪些巧妙思路让它显得特别。
我们会讲这些内容:
- 什么是 SGLang
- RadixAttention:SGLang 的核心
- RadixAttention 如何复用过去的工作
- SGLang 的前端语言
- SGLang 中的 Continuous Batching
- 结构化输出和更快解码
- SGLang 更强大的功能
- SGLang 和 vLLM 的对比
阅读这里: SGLang 是怎么工作的?
准备 AI 工程面试可以看这里:AI Engineering Interview Questions
这次就到这里。
谢谢
Amit Shekhar Outcome School 创始人