当前位置:首页 > 科技资讯 > 正文

DeepSeek开源LPLB:基于线性规划的MoE负载均衡器

日前,人工智能公司DeepSeek在GitHub平台上正式发布了其最新开源项目——LPLB

DeepSeek开源LPLB:基于线性规划的MoE负载均衡器 DeepSeek  LPLB 负载均衡 MoE 第1张

项目地址:https://github.com/deepseek-ai/LPLB

此次发布显得相当低调,DeepSeek未通过官方推特或公众号进行宣传,仅有零星技术博主提及,关注度相对有限。截至目前,该项目在GitHub上的star数量仍未突破200大关。

然而,深入探究后发现,LPLB项目蕴含着不简单的技术价值,值得业界重点关注。X平台用户gm8xx8评论称,此举暗示DeepSeek正着手解决模型正确性与吞吐量瓶颈,或为下一代模型的发布铺平道路。

DeepSeek开源LPLB:基于线性规划的MoE负载均衡器 DeepSeek  LPLB 负载均衡 MoE 第2张

项目概述

LPLB的全称为Linear-Programming-Based Load Balancer,中文可译为基于线性规划的负载均衡器。

顾名思义,LPLB是一种并行负载均衡工具,通过线性规划算法对混合专家(MoE)模型中的专家并行任务进行优化分配。

具体而言,LPLB通过三个关键步骤达成动态负载均衡:

动态重排序:依据工作负载统计指标对专家顺序进行动态调整(Reordering)。

副本构建:结合静态网络拓扑,为负载较重的专家创建副本(Replicas)。

最优分配求解:针对每一个训练批次(Batch),计算Token的最优分配策略,以实现负载均衡。

进一步说,LPLB的专家重排序环节依赖于EPLB(专家并行负载均衡器)的辅助。实时工作负载数据可通过用户自定义、torch.distributed收集,或直接从Deep-EP通信缓冲区读取。求解器方面,LPLB内置了LP求解器,该求解器采用单SM内点法(IPM),并借助NVIDIA cuSolverDx和cuBLASDx库实现高效线性代数计算。

通过上述机制,LPLB有效缓解了MoE训练中的负载不均现象——即某些“专家”因处理更多Token而成为瓶颈,导致部分GPU过载而其他GPU闲置的问题。

X平台用户big goose评论称,LPLB的设计与NVIDIA用于调度SM(流式多处理器)的方案有异曲同工之妙,但将抽象层次提升至pipeline级别。LPLB对“单SM”的强调表明其求解过程极为轻量,计算资源占用低。

DeepSeek开源LPLB:基于线性规划的MoE负载均衡器 DeepSeek  LPLB 负载均衡 MoE 第3张

但需注意,LPLB目前尚未投入生产环境。DeepSeek在Readme文件中明确指出:“LPLB目前处于早期研究阶段,性能优化效果仍在持续评估中。”

LPLB核心机制解析

LPLB可视为EPLB的延伸与增强,专注于处理MoE训练过程中出现的动态负载不均衡。

EPLB与LPLB对比

EPLB:主要用于解决静态不均衡问题,例如因数据分布固有特性导致某些专家长期过载。

LPLB:则针对动态波动,即由小批次数据随机性引发的瞬时负载抖动进行优化。

核心机制详解

冗余专家:每个冗余专家(即副本)与一个原始专家相连,在GPU间构建起连接边。

边容量:边的容量指当前批次中分配给该冗余专家的Token数量,它限制了可用于负载均衡的最大Token流量。

线性规划优化:LPLB通过求解线性规划问题,在边容量约束下沿这些边重新路由Token,以最小化专家并行组内的负载差异。

具体实施步骤

第一步,通过EPLB识别需要复制的专家(仅重排序,尚未实际复制)。

第二步,依据预设的LPLB拓扑结构,为负载最高的专家创建副本。

通信优化方面:实时工作负载同步采用NVLINK和NVSHMEM技术,取代了传统的torch.distributed.allreduce,显著减少了通信延迟。这也是为何需要预先安装DeepEP库的原因。

现有局限与挑战

尽管LPLB引入了动态优化机制,但目前仍面临若干局限:

非线性计算成本未纳入考量:当前规划器仅以Token数量为平衡目标,忽略了分组矩阵乘法(Grouped GEMM)执行时间的非线性特性,这可能导致某些场景下性能并非最优。

求解延迟问题:节点内优化时,求解器耗时约100微秒(跨节点更长)。对于极小批次的数据,此延迟可能不容忽视。

极端不均衡场景下的劣势:在全局负载极度不均衡时,LPLB的效果可能不及EPLB。原因在于LPLB分配冗余专家时遵循的规则(避免为同一原始专家分配多个副本)限制了其应对能力。

典型拓扑结构详解

LPLB支持通过调整r2o矩阵来配置专家副本的分布策略。以下是几种常用拓扑:

立方体拓扑:在部分GPU上复制专家,形成带有对角边的立方体结构。要求每GPU至少部署2个专家。适用场景:适用于8 GPU的专家并行子组内的负载均衡,且不损失跨节点通信性能。

超立方体拓扑:与立方体类似,但不包含对角边,需要16个GPU。适用场景:适用于跨16 GPU的专家并行场景。

环面拓扑:在同一节点内的相邻GPU上复制一个专家,并在相邻节点的GPU上复制另一专家,构成环面图。同样要求每GPU至少2个专家。优缺点:虽能有效实现全局平衡,但因涉及更多节点内通信,效率通常低于立方体拓扑。

结语与展望

DeepSeek此次开源的LPLB库,直击大模型训练中的“木桶效应”——即训练速度受限于最慢GPU的瓶颈问题。

其创新之处在于将线性规划这一数学优化工具应用于实时负载分配,并结合底层NVSHMEM技术突破通信瓶颈。对于致力于MoE架构训练加速的研究者和开发者而言,LPLB提供了极具价值的参考实现。

详细的安装与测试指南,请参阅官方代码仓库。