LLM系列:PD分离推理架构

1,105 阅读2分钟

1 分离式架构

  • TTFT(Time To First Token) prefill首token耗时
  • TPOT(Time Per Output Token) decode 每token耗时

系统SLO指标

TTFT SLO和TPOT SLO。例如:P90 TTFT SLO=0.4s,表示90%请求TTFT必须小于等于0.4s。

kimi Mooncake的pd分离架构:DistServe

分离vs合并实验

从实验可以发现:单张卡只做prefill或只做decode的 goodput,比合并架构既prefill又decode的goodput都高。合并式架构会同时损害TTFT、TPOT。
考虑到多加载模型副本(显存消耗),kv cachce的传输(性能消耗),分离式架构会比合并式架构更加划算。

合并式架构推理:

1 prefill、decode共享KVCache;
2 prefill完成一次推理,产生中间状态结果存放到KVCache,产生token1;
3 增量模型使用token1,使用KVCache中间变量,推理产生token2,并更新KVCache;
4 循环增量模型推理,直至完成推理。

合并式推理存在问题:
1 decode必须等待prefill;
2 prefill性能受batch数影响较大,decode性能受batch数影响较小,合并式架构无法分别设置batch(为了最大化性能,prefill batch尽可能小,decode batch尽可能大);

2 分离式架构的优化

算力和Mem独立优化

  • prefill阶段:计算受限(compute-bound) 请求量大、prompt长的情况下,prefill计算kv cache。
  • decode阶段:存储受限(memory-bound) token by token方式,需要频繁访存读取KV Cache。

2.1 batch策略独立优化

  • prefill阶段:compute-bound,当batch中总token数超过阈值,吞吐量不再增加
  • decode阶段:memory-bound,读写数据更多,提升batch可明显增大吞吐

2.2 并行策略优化

通过实验方式评估

  • prefill阶段:在rate较小时,更适合用tp;在rate较大时,更适合用pp
  • decode阶段:随着gpu数量增加,pp能产生高吞吐,tp能产生更低延迟。

3 弹性分配的推理框架 LoongServe

参考:

https://aijishu.com/a/1060000000472929  
https://mp.weixin.qq.com/s?__biz=MzAwNjQwNzU2NQ==&mid=2650399201&idx=1&sn=fcc7eb947988240d7c540f2ec433b819&chksm=82bc171e9116f293cbc96a5cf64067a24669df33e64d0bf2b38400b64222b46793ca3bf8c670#rd  
https://blog.csdn.net/weixin_45817413/article/details/138584243  
https://blog.csdn.net/qq_32204441/article/details/139483688