转折中的 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解耦了传输与请求生命周期管理,简化了调度器逻辑。

➡️

继续阅读