很多人学完 Self-Attention、QKV、FFN 之后,一打开 vLLM / SGLang 源码,立刻懵了。

文档里到处是:

  • Prefill
  • Decode
  • KV Cache
  • TTFT
  • Tokens/s

几乎没人再聊 Attention 公式。

原因很简单:

Transformer 是模型结构;Prefill + Decode,才是它在 GPU 上真正的运行方式。

看不懂这两阶段,后面所有推理优化都会像在背名词。

本篇先不讲公式,先把 LLM 推理的「整体操作系统」立起来。


一、先建立整体流程

假设用户输入:

北京到上海有多少公里?

模型真正执行的,大致是下面这条链路。

用户输入 ↓ Tokenizer ↓ Embedding ↓ Transformer ↓ Linear ↓ Softmax ↓ 预测一个 Token ↓ 拼回输入,继续预测下一个

所以可以先记住一句非常粗暴、但也非常有用的话:

Transformer 本质就是一个 Next Token Predictor(下一个 Token 预测器)。

整个推理,就是不断重复:

预测一个 Token → 加入上下文 → 再预测

直到吐出<EOS>

但问题来了:

如果 GPU 真的「从头到尾一直在做同一种事」,为什么工业界非要拆成 Prefill 和 Decode?


二、真正的推理其实分成两个阶段

整体流程看起来一直在循环,但 GPU 实际执行时,并不是同一种计算。

一次请求的生命周期,更像这样:

  • Prefill 只发生一次
  • Decode 会循环很多次

后面几乎所有推理优化——FlashAttention、PagedAttention、Continuous Batching、Speculative Decoding——都在围着这两段转。

所以这两个阶段,必须先搞懂。


三、Prefill:一次性处理整个 Prompt

假设 Prompt 被切成:

北京 到 上海 有 多远 ? → T1 T2 T3 T4 T5 T6 T7

很多人第一次会误以为:

Transformer 是一个 Token 一个 Token 往前算。

实际上不是。

Prefill 会把整个 Prompt一次性喂进 GPU,做一次 Forward。

这张图里,Prefill 至少干了三件事。

1. 并行计算整个 Prompt

所有 Token 同时进入 Transformer。

GPU 最擅长的就是大矩阵乘法,所以:

Prefill 通常是 GPU 利用率最高的阶段。

这也是为什么「长 Prompt」往往不如「长生成」那么可怕——至少 Prefill 端还能把算力打满。

2. 生成 Hidden States,并预测第一个回答 Token

每个 Token 都会得到自己的 Hidden State:

T1 → H1 T2 → H2 … T7 → H7

真正用来预测「下一个 Token」的,通常是最后一个位置的 Hidden State:

H7 → Linear → Softmax → 「大约」

所以 Prefill 不只是「读懂 Prompt」,它还直接产出了首个生成 Token。

这就是 TTFT(Time To First Token)里,很大一部分延迟从哪来。

3. 最重要:写出 KV Cache

每一层 Attention 都会产生 Q、K、V。

其中:

  • K(Key)
  • V(Value)

会被按层缓存下来:

Layer1: K, V Layer2: K, V … Layer32: K, V

这些内容统称:

KV Cache

后续 Decode 几乎完全依赖它。

很多教程把它当成「附带产物」。

在真正的推理引擎里,它才是 Prefill 最核心的交付物。


四、为什么 Prefill 只执行一次?

最容易问的问题是:

为什么不每生成一个 Token,就重新把整个上下文再 Forward 一遍?

比如:

第 1 次:北京 到 上海 有 多远? 第 2 次:北京 到 上海 有 多远?大约 第 3 次:北京 到 上海 有 多远?大约 1200

如果每一步都重新算:

7 Token → 8 Token → 9 Token → …

历史部分明明没变,你却在反复重算同一段 K / V。

这正是 KV Cache 存在的理由:

历史 Prompt 的 K、V 先缓存;之后每来一个新 Token,只算它自己的增量,再拼进 Cache。

所以:

Prefill 不是「算一遍 Prompt 而已」,而是「为后面所有 Decode 交一张可复用的通行证」。

没有这张通行证,Decode 会贵到不可上线。


五、Prefill 和 Decode 的职责完全不同

初学者常见误区:

Prompt 很长,所以推理很慢。

实际上,慢在哪一段,要拆开看。

PrefillDecode整个 Prompt 一次 Forward每次只生成一个 TokenGPU 利用率高GPU 利用率往往更低建立 KV Cache复用并持续追加 KV Cache每个请求通常只执行一次重复执行直到结束决定首 Token 延迟(TTFT)决定生成速度(Tokens/s)

因此,工业界几乎不会把它们当同一种工作负载:

  • Prefill 更像compute-bound
  • Decode 更像memory-bound

于是框架也会分别优化:

  • Prefill 延迟
  • Decode 吞吐

混在一起谈「推理优化」,往往会对不上病。


六、先把这张思维框架钉死

如果本章只带走一张图,请带走这张:

Prompt

Prefill(一次)

生成 KV Cache

Decode(很多次)

不断生成 Token

回答结束

后面你看到的所有「高级词」,其实都在优化这张图里的某一环:

  • FlashAttention:加速 Prefill 的 Attention 计算
  • PagedAttention:优化 Decode 的 KV Cache 管理
  • Continuous Batching:提高 Decode 阶段 GPU 利用率
  • Speculative Decoding:减少 Decode 次数

所以本系列的立场是:

理解 Prefill 和 Decode,是理解整个 LLM 推理体系的第一步。

公式可以后补;这两段生命周期,必须先立住。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

免费领 150 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐