转折中的 PD 分离
💡
原文中文,约5400字,阅读约需13分钟。
📝
内容提要
我们在PD分离部署方面取得新进展,KVT模块负责kvcache传输,设计实现零负载。通过解析层、控制层和传输层优化数据传输和容错处理,引入双请求模式以提高调度灵活性,支持多种后端,满足模型需求的演进。
🎯
关键要点
- PD分离部署取得新进展,KVT模块负责kvcache传输,设计实现零负载。
- KVT模块分为接入层、解析层、控制层和传输层,优化数据传输和容错处理。
- 引入双请求模式以提高调度灵活性,支持多种后端,满足模型需求的演进。
- KVT模块在实例启动时注册各个层的信息,并在每次计算完成后通知数据可以发送。
- 控制层负责维护对端链接和容错处理,传输层负责传输数据块。
- KVT提供的传输抽象使得每个层对应一块显存,支持灵活的物理布局。
- 在VLLM中集成KVT时,社区的接口设计未能满足零侵入式旁路与零额外开销的需求。
- 分离计算和kvcache的load/save请求,避免影响调度器的性能。
- 引入hybrid connector,解耦传输与请求生命周期管理,简化调度器逻辑。
- 双请求模式允许请求同时发送给P和D节点,提高调度灵活性。
- 处理abort请求时,PBackend和DBackend采取不同的策略以确保数据一致性。
- 实现kvsbackend以将kvcache保存到全局存储,并从中加载。
- KVT 2.0版本要求更高,需在抽象层面更灵活、更通用,避免对EP all2all的影响。
❓
延伸问答
PD分离部署的最新进展是什么?
PD分离部署在KVT模块的支持下实现了零负载的kvcache传输,优化了数据传输和容错处理。
KVT模块的主要功能是什么?
KVT模块负责在两个节点之间完成kvcache传输,分为接入层、解析层、控制层和传输层。
双请求模式如何提高调度灵活性?
双请求模式允许请求同时发送给P和D节点,从而提高了调度灵活性。
如何处理abort请求以确保数据一致性?
PBackend和DBackend在处理abort请求时采取不同策略,以确保数据一致性。
KVT 2.0版本对模块提出了哪些新要求?
KVT 2.0版本要求在抽象层面更灵活、更通用,并避免对EP all2all的影响。
hybrid connector的作用是什么?
hybrid connector解耦了传输与请求生命周期管理,简化了调度器逻辑。
➡️