推理解耦与 KV 数据路径
Prefill/decode 分池、状态预载、网关连接和三类容量预算
从 KV 字节与迁移窗口推导推理解耦的资源条件,连接 Minimal/Distributed 网络、租户 VRF、状态网关和会话恢复,分别配置网络、连接与状态容量。
推理解耦把一次请求拆成不同资源池上的阶段,调度粒度随之从“把请求送到一台模型服务器”扩展为“安排计算阶段、KV状态和请求连接”。Prefill产生上下文状态,decode持续消费这些状态,网关维持外部连接,存储层承接模型加载与会话恢复。每次拆分都增加一个可独立扩容的资源池,也增加一段需要计入请求时延的数据路径。S045 pp. 8–16 S047 pp. 21–24, 31–35
Prefill与decode拥有不同资源约束#
Prefill处理输入token,为各层计算K/V;decode逐token生成输出,重复读取已有KV。S045据此将prefill描述为偏计算约束,将decode描述为偏内存带宽约束,并讨论将二者安排到不同GPU池。分池后,prefill与decode可以按各自的队列和资源需求调配,状态传递则成为两池之间的显式步骤。S045 pp. 8–13
KV大小直接影响这一交换。对MHA,可按下式重建未压缩缓存量:
为层数,为K/V头数,为上下文token数,为每头维度,为每元素字节数,前面的2对应K与V。S045的假想模型取128层、96头、128维、FP16、128K上下文,按128K=131,072个token计算得到约824.6GB。GQA改变K/V头数,MLA改变缓存表示,具体容量要按实际结构计算。S045 pp. 8–9
容量与迁移带宽必须使用一致的方向口径。S045指出PCIe5 x16约64GB/s每方向,128GB/s为双向合计;decode回读KV时约束在读取方向。网络端口也如此:400Gb/s换算为50GB/s线速字节带宽,应用的有效值还要扣除协议和路径损耗。本文假设一次需迁移20GB KV,在有效40GB/s单向路径上,单纯传输下界为0.5秒;如果本地重算更快,或者下游可以提前预载,调度选择便会改变。S045 pp. 10, 13, 16
把迁移放在阶段边界#
S045提出的PD-KVC按会话和token范围管理状态,在当前步骤启动前将工作集从暖池或持久层暂存回T0 HBM。Decode的计算重叠空间小,因此运行中的缓存驻留是关键条件;可利用的重叠窗口主要来自会话切换、工具等待和子Agent交接。调度器预测下一步会运行哪个会话,提前发起非阻塞RDMA读取,待状态准备后启动decode。S045 pp. 12–14
一个具体执行链可以是:prefill worker生成KV,状态服务登记位置;调度器选择decode worker,按所需层和token范围传入其HBM;worker逐token执行;会话进入工具等待时,将可驱逐状态迁到暖池或NVMe;工具返回后,按驻留位置和回迁成本选择下一个worker。这里PD-KVC的地址和生命周期来自S045,连续操作顺序是本文对其机制的工程重建。S045 pp. 13–16, 29–30
迁移与重算的比较可以写成一个决策下界:,再减去可隐藏的预取窗口,与重新prefill所需时间比较。上下文长短、缓存压缩、状态所在层和prefill池负载共同影响结果。S045把“transfer versus recompute”列为开放策略,实际实现应记录每次选择的条件,避免只按缓存命中率优化。S045 p. 16
服务形态决定是否配置后端fabric#
推理RA给出两种网络profile。Minimal Inference保留融合SO-C/storage、带内管理和独立OoB,模型及关键数据依赖位于单个xPU-node时省去后端。Distributed Inference增加scale-out,承接跨host模型切分、PP、distributed batching或共享cache等依赖,并可启用RoCE。Prefill/decode分置也属于这种跨host关键路径。S047 pp. 21–24, 40–41
这种划分把“模型放得下”和“请求怎样运行”分成两个问题。一个模型能装入八卡服务器,但将prefill迁到独立池或复用远端KV后,单次请求仍依赖其他主机;另一种服务虽有很多副本,每个请求却全部在本地执行,后端需求相应较低。规划应先画出请求阶段和状态位置,再选择profile。S047 pp. 21, 40–41 S045 pp. 11–16
在后端采用单平面400G、半上行DS5000基线时,一个leaf服务八台服务器、64颗xPU。将协作的prefill/decode或分布式执行节点放在同首跳域,可以把域内后端通信留在leaf;跨域或远端状态池仍使用spine。SO-C入口和共享存储则各自沿目的地路径计量,完整路径计算见拓扑放置与性能建模。S047 pp. 18–24
前端连接和后端状态拥有不同生命周期#
两种profile都保留网关。请求通常从外部VIP经L4负载均衡或DNS到x86 gateway,网关执行NAT和入口处理,再经租户VRF/VXLAN送到服务。每个租户对应VRF,默认隔离,受控共享存储或跨租户服务可通过显式peering建立连接。TH5配置使用L3VNI,路由和状态职责分别落在fabric与gateway。S047 pp. 20–22, 31–35
网关有三类地址转换。masquerade是有conntrack的源NAT;portForward是有状态目的NAT;static是一对一无状态地址映射。有状态模式的idleTimeout默认2分钟,需要与上游负载均衡和连接空闲行为协调。每个gateway保存本地连接状态,没有跨实例共享conntrack;健康检查、摘除和graceful drain用于维护与新连接分配。S047 pp. 31–35
因此,worker迁移、KV恢复和网关切换应分别设计。KV已在另一个worker准备好,只解决计算状态;外部流仍需要有效的连接与路由状态。部署验证可以分别覆盖“worker失败后恢复推理”“gateway失败后重建请求”“维护drain保留存量连接”三类场景,观察应用重试是否重复执行工作。RA提供网关故障与连接阶梯负载等验证项,应用级状态恢复还需与运行时协作。S047 pp. 34–35, 43–45
端口容量、连接容量与状态容量分别扩展#
后端按NIC数量、端口速率和通信矩阵配置。RA的单平面基线中,XOC-256为4leaf/2spine/32服务器,512为8/4/64,1024为16/8/128;这些是给定NIC和上下行比例下的示例组合。网关则按connections/s、吞吐、握手时延、CPU及NAT占用扩容;KV池按活跃与挂起会话量、共享前缀和恢复突发配置。S047 pp. 18–19, 31–35 S045 pp. 12–16
作为本文容量示例,若八台decode节点同时恢复,每台需要20GB,恢复窗口1秒,则共享路径至少要交付160GB/s有效总流量,状态池出口与接收端同时满足这一预算。即使每台拥有400G接口,共享暖池或spine瓶颈仍可能先出现。这里应将并发恢复作为流量事件建模,再观察队列尾部,状态池不能只按静态TB容量选择。S045 pp. 14–16, 29–30 S044 pp. 41–44
共享前缀与租户隔离共同决定状态路由#
推理资源池通常服务多租户、多模型与多种精度。PD-KVC要求缓存条目绑定固定模型、精度与kernel配置,即使token文本相同,运行配置变化后也应进入不同命名域。调度器判断“可复用状态”时需要检查这组身份,再选择拥有匹配状态或能够及时取回状态的worker。这样,缓存命中可以直接连接到执行正确性和实际迁移成本。S045 p. 13
共享前缀采用内容哈希,私有后缀采用会话寻址。多个子Agent可以在状态服务中引用共同前缀,引用计数决定回收时刻;GPU执行步骤启动时,仍应具备其所需本地KV工作集。规划因此需要同时统计逻辑会话容量、物理去重后的池容量和各worker的活跃驻留量,三者分别影响存储、网络和HBM并发。S045 pp. 13–14
网络租户边界则通过VRF与显式peering维护。某些租户可以受控访问共同存储VPC,其他租户保持隔离;网关的NAT地址和外部暴露范围也按租户配置。状态服务还要在会话命名域执行访问控制,将网络可达性与对象读取权限共同落实。推理RA与PD-KVC分别提供网络和状态层的接口,两层身份需要由上层编排建立映射。S047 pp. 20–22, 31–34 S045 pp. 13–14
长连接服务还要区分连接空闲与任务暂停。一个Agent等待工具结果时,任务仍有效,外部连接却可能因idleTimeout被回收;任务恢复可以重新建立请求连接,而KV和日志按会话身份继续查找。本文建议分别保存请求连接ID、会话ID和当前worker位置,恢复测试覆盖连接重建与状态续接的组合。RA的gateway timeout、drain与连接SLI,以及S045的会话寻址,为这种分层恢复提供了具体机制。S047 pp. 32–35, 58–59 S045 pp. 13–14, 19–22
阶段间调度也需要排队反馈。Prefill队列很长时,把请求送到已有可复用KV的位置可能减少重算;decode容量紧张时,提前完成的prefill状态又会占用暖池和迁移带宽。S045讨论的动态分池与KV-aware routing可以据此形成联合决策:计算池队列、缓存驻留与下一步需求一起进入选择。验证时固定请求分布和上下文长度,分别观察计算等待、状态等待和总响应时间,才能识别瓶颈迁移。S045 pp. 11–16
模型更新也会触发类似数据路径。新版本权重从共享存储加载到worker,缓存命名域随模型配置变化,旧版本会话需要按服务策略继续、迁移或结束。AFPM将快速模型加载列为数据服务能力,S045要求不同模型配置的KV分别寻址;本文据此建议把模型版本、worker就绪、KV归属和入口流量切换作为联合更新对象。验收时观察加载流量对现有decode尾时延的影响,再按批次开放新worker,能够减少数据面与服务切换之间的时序歧义。S044 p. 42 S045 p. 13 S047 pp. 37–39
以请求阶段指标校准网络设计#
推理RA建议观察按租户、VRF、设备、端口、方向标记的尾时延、链路利用率,以及仅在RoCE后端适用的PFC事件。网关另记录新建与并发连接、握手、吞吐、NAT占用和错误。将这些信号与prefill等待、KV迁移、decode启动和逐token输出对齐,才能定位延迟来自哪个资源池;这些应用阶段指标是本文在RA网络SLI基础上的工程补充。S047 pp. 41–45, 57–59
解耦的评价对象最终是完整请求与会话:独立扩容是否减少了相应排队,新增状态路径是否进入时延预算,失败时计算与连接是否能够恢复。训练和推理可以复用设备与配置流程,服务阶段、网关状态和会话生命周期需要按实际负载建立指标。更长任务的因果恢复见Agent状态与因果恢复,暖池、持久层与归档的配置见存储层级与数据服务。S047 pp. 35–45 S045 pp. 17–22