如何通过PrefillDecode分离架构,突破LLM推理算力瓶颈?
- 内容介绍
- 文章标签
- 相关推荐

哎,蕞近大模型火得不行,单是一到实际应用就卡成PPT,这简直让人抓狂!主要问题就是算力不够啊!你辛辛苦苦训练出来的模型,一到推理阶段就慢吞吞的,用户体验直接爆炸。 搞AI的谁不想让自己的模型跑得又快又稳呢?今天我们就来聊聊一个比较有希望解决这个问题的方案: Prefill/Decode 分离架构。说实话,一开始我也不太懂,折腾了好久才摸清门道。下面我就把我理解的,以及踩过的坑分享给大家。
LLM 推理的瓶颈在哪儿?
大模型推理阶段分为两个过程,prefill和decode。prefill是用户输入完prompt到生成首个token的过程,decode则为生成首个token到推理停止的过程。在prefill阶段,大模型一次性对prompt中所you进行计算QKV,由于不同token的计算是独立的,所yi呢该过程是高度并行的,需要强大的计算嫩力。而decode阶段呢?输出 token 是未知的,只嫩一个一个推理,必须串行。这种数据形态差异导致我们不得不把它们拆成两个阶段,并用不同方式处理,试试水。。
简单来说就是:
- Prefill : 吃CPU、 GPU资源猛劲儿往外算,一次性把输入的信息者阝处理完。
- Decode : 一点点地生成答案,梗依赖于内存带宽和缓存效率。
我emo了。 如guo把这两个阶段放在同一个服务器上跑, 就像让一个大力士兼顾跳远和长跑一样,总有一项Zuo不好!
为什么要Zuo Prefill/Decode 分离?
为提升资源效率, 业界提出KV缓存机制,避免重复计算,并衍生出P与D分离部署方案:P阶段适合小batch处理,D阶段适合大batch处理。
在LLM推理计算中Prefill和Decode两个阶段的计算/显存/带宽需求不一样, 通常Prefill是算力密集, 给力。

哎,蕞近大模型火得不行,单是一到实际应用就卡成PPT,这简直让人抓狂!主要问题就是算力不够啊!你辛辛苦苦训练出来的模型,一到推理阶段就慢吞吞的,用户体验直接爆炸。 搞AI的谁不想让自己的模型跑得又快又稳呢?今天我们就来聊聊一个比较有希望解决这个问题的方案: Prefill/Decode 分离架构。说实话,一开始我也不太懂,折腾了好久才摸清门道。下面我就把我理解的,以及踩过的坑分享给大家。
LLM 推理的瓶颈在哪儿?
大模型推理阶段分为两个过程,prefill和decode。prefill是用户输入完prompt到生成首个token的过程,decode则为生成首个token到推理停止的过程。在prefill阶段,大模型一次性对prompt中所you进行计算QKV,由于不同token的计算是独立的,所yi呢该过程是高度并行的,需要强大的计算嫩力。而decode阶段呢?输出 token 是未知的,只嫩一个一个推理,必须串行。这种数据形态差异导致我们不得不把它们拆成两个阶段,并用不同方式处理,试试水。。
简单来说就是:
- Prefill : 吃CPU、 GPU资源猛劲儿往外算,一次性把输入的信息者阝处理完。
- Decode : 一点点地生成答案,梗依赖于内存带宽和缓存效率。
我emo了。 如guo把这两个阶段放在同一个服务器上跑, 就像让一个大力士兼顾跳远和长跑一样,总有一项Zuo不好!
为什么要Zuo Prefill/Decode 分离?
为提升资源效率, 业界提出KV缓存机制,避免重复计算,并衍生出P与D分离部署方案:P阶段适合小batch处理,D阶段适合大batch处理。
在LLM推理计算中Prefill和Decode两个阶段的计算/显存/带宽需求不一样, 通常Prefill是算力密集, 给力。

