什么是PD分离部署
大模型推理是自回归的过程,有以下两阶段:
Prefill阶段(全量推理)
将用户请求的prompt传入大模型,进行计算,中间结果写入KVCache并推出第1个token,属于计算密集型。
Decode阶段(增量推理)
将请求的前1个token传入大模型,从显存读取前文产生的KVCache再进行计算,属于访存密集型。
PD分离部署场景下,大模型推理的Prefill阶段(全量推理)和Decode阶段(增量推理)分别实例化部署在不同的推理卡资源上同时进行推理,用于提高资源利用效率。
PD分离结合Prefill阶段的计算密集型特性,以及Decode阶段的访存密集型特性,通过调节PD节点数量配比来提升Decode节点的batch size来充分发挥NPU卡的算力,进而提升集群整体吞吐。
此外,在Decode平均低时延约束场景,PD分离相比PD混合部署,更加能够发挥性能优势。
分离部署的实例类型启动分为以下三个阶段:
启动全量推理实例:必须为NPU实例,用于启动全量推理服务,负责输入的全量推理。全量推理占用至少1个 容器 。
启动增量推理实例:必须为NPU实例,用于启动增量推理服务,负责输入的增量推理。增量推理占用至少1个容器。
启动scheduler实例:可为CPU实例,用于启动api-server服务,负责接收推理请求,向全量或增量推理实例分发请求,收集推理结果并向客户端返回推理结果。服务调度实例不占用显卡资源,建议增加1个容器,也可以在全量推理或增量推理的容器上启动。