ELDR: Expert-Locality-Aware Decode Routing for PD-Disaggregated MoE Serving
arXiv · HuggingFace · ▲24
摘要(原文)
In prefill-decode (PD) disaggregated LLM serving, each request is assigned to a decode worker after prefill. Existing decode routers balance only load; for mixture-of-experts (MoE) models this is incomplete: equally loaded workers can differ in latency, since each decode step loads the weights of every distinct expert its batch activates. We present ELDR, an expert-locality-aware decode router for PD-disaggregated MoE serving. From a request's prefill expert activations, ELDR builds an expert signature predicting the experts it will activate during generation. Offline, balanced K-means partitions signature space across decode workers; online, locality-band routing sends each request to the least-loaded worker among those best matching its signature. A signature cache, co-indexed with the KV cache at KV-block granularity, keeps signatures exact under prefix caching. Implemented in vLLM and evaluated on deployments of up to 40 GPUs, ELDR reduces median TPOT by 5.9-13.9% over the strongest of four load-balancing baselines across three MoE models and two workloads, with model outputs unchanged.
摘要(中译)
在预填充 - 解码(prefill - decode,PD)分解式大型语言模型(LLM)服务中,每个请求在预填充后会被分配给一个解码工作器。现有的解码路由器仅平衡负载;对于混合专家(mixture - of - experts,MoE)模型来说,这是不完整的:负载相同的工作器在延迟上可能不同,因为每个解码步骤会加载其批次激活的每个不同专家的权重。我们提出了ELDR,一种用于PD - 分解式MoE服务的专家局部性感知解码路由器。从请求的预填充专家激活中,ELDR构建一个专家签名,以预测其在生成过程中将激活的专家。在离线状态下,平衡的K - 均值算法将签名空间划分到各个解码工作器上;在线状态下,局部性带路由将每个请求发送到与其签名最匹配且负载最轻的工作器。一个签名缓存,与键值(KV)缓存在KV块粒度上共同索引,在前缀缓存下保持签名的准确性。ELDR在vLLM中实现,并在最多40个GPU的部署上进行评估,在三个MoE模型和两种工作负载中,与四个负载平衡基线中最强的那个相比,ELDR将中位数TPOT(可能是某种性能指标,保留英文)降低了5.9 - 13.9%,且模型输出不变。
背景剖析
背景剖析
1. 技术背景与需求
大型语言模型(LLM)的部署正转向预填充-解码(PD)解聚架构,即将“提示处理”(预填充)和“令牌生成”(解码)分离到不同的工作节点池中。这种架构的挑战在于:预填充是并行计算密集型任务,而解码是串行且延迟敏感的任务。若将两者共置,长预填充会阻塞解码,导致“首令牌时间”(TTFT)和“每输出令牌时间”(TPOT)变长。因此,PD解聚需要高效的路由机制——预填充完成后,请求需被分配到合适的解码节点以生成后续令牌。
对于混合专家(MoE)模型,传统负载均衡方法存在缺陷。MoE的解码是内存带宽瓶颈,其延迟由每个批次激活的专家集合的大小决定(而非令牌数量)。例如,若两个请求共享解码节点,但激活的专家不同,延迟可能差异显著。然而,现有方法仅关注负载均衡,忽略了专家激活的局部性(即相关请求倾向于激活相似的专家区域,如代码、医学等任务)。
2. 之前的问题
传统路由方法的局限性在于:
- 负载均衡不足:仅平衡计算负载,但MoE的延迟由专家集合决定,负载相同的节点可能因专家集合不同而有显著延迟差异。
- 忽视专家局部性:未利用MoE专家激活的结构性(如同一领域的请求激活相似专家),导致专家集合碎片化,增加内存访问开销。
- 前缀缓存不兼容:前缀缓存(用于跳过重复提示的预填充)会破坏专家签名,现有方法无法在缓存命中时保持路由准确性。
3. 本文的解法
论文提出ELDR(Expert-Locality-Aware Decode Routing),通过以下思路解决问题:
- 专家签名与局部性感知路由:从预填充阶段的专家激活生成专家签名,离线用平衡K-means将签名空间划分为多个区域(每个区域对应一个解码节点),在线路由时选择与请求签名最相似且负载最低的节点。
- 前缀缓存兼容性:维护与KV缓存对齐的块级专家签名缓存,在缓存命中时恢复完整签名,确保路由准确性。
- 双目标优化:同时满足专家局部性(通过签名聚类)和实时负载均衡(通过在线选择最低负载节点)。
4. 切入角度的关键差异
ELDR与前人工作的核心区别在于:
- 关注专家局部性:首次将MoE专家激活的结构性(如领域相关性)作为路由依据,而非仅依赖负载。
- 离线-在线分离设计:离线通过K-means捕获专家局部性结构,在线通过局部性带(locality band)平衡结构与实时负载。
- 缓存感知路由:通过块级签名缓存解决前缀缓存与路由的冲突,而传统方法未考虑这一场景。
ELDR在vLLM中实现,仅需修改路由层,保持模型输出不变,显著降低了TPOT(最高达13.9%),适用于从几十亿到数百亿参数的MoE模型。




