DeepSeek悄悄开源LPLB:用线性规划解决MoE负载不均
Seek .Seek .(US:SKLTY) 36氪·2025-11-21 07:53

项目发布与市场关注度 - DeepSeek在GitHub上低调发布了新的代码库LPLB,项目地址为https://github.com/deepseek-ai/LPLB [1] - 项目发布初期关注度较低,未发布推文或公众号更新,技术博主分享的推文关注不多,截至目前项目star数量未超过200 [1] - 有观点认为该项目表明公司正在解决正确性和吞吐量瓶颈问题,为下一版模型发布做准备 [1] 技术方案核心原理 - LPLB全称为基于线性规划的负载均衡器,旨在解决MoE训练中的动态负载不均衡问题 [3][7] - 通过三个核心步骤实现动态负载均衡:动态重排序专家、构建专家副本、求解最优Token分配方案 [4] - 专门处理由训练过程中小批次数据随机性引起的瞬时负载抖动等动态波动问题 [8] - 核心创新点在于引入线性规划数学工具实时计算最优分配,并利用底层NVSHMEM技术打破通信瓶颈 [14] 具体实现机制 - 专家重排序过程由EPLB协助完成,实时工作负载统计信息可通过多种方式获取 [4] - 使用内置LP求解器实现单SM内点法,利用NVIDIA的cuSolverDx和cuBLASDx库进行高效线性代数运算 [4] - 通过创建冗余专家副本链接到原始专家,在GPU之间形成连接边,定义边容量为当前批次分配给冗余专家的Token数量 [9] - 通信优化使用NVLINK和NVSHMEM替代传统torch.distributed.allreduce,大幅降低通信开销 [10] 技术特点与优势 - 方案与英伟达用于调度SM的方案相似,但将抽象提升到了pipeline层级 [5] - 强调单SM求解过程,意味着求解过程非常轻量化,不会占用过多计算资源 [5] - 能有效解决MoE模型中某些专家比其他专家接收更多Token导致的GPU负载不均问题 [4] - 本质上是在解决大模型训练中的木桶效应问题,即训练速度取决于负载最重的GPU [14] 当前发展阶段与局限性 - 项目目前处于早期研究阶段,性能改进情况仍在评估中,应该还未被用于生产流程 [7] - 求解器在节点内优化大约需要100µs,对于非常小的Batch Size,这个延迟可能不可忽略 [12] - 当前规划器仅平衡Token总数,未考虑分组矩阵乘法时间成本的非线性特征,可能导致性能非绝对最优 [11] - 在全局负载极端不均衡的情况下,LPLB表现可能不如EPLB [12] 拓扑结构配置 - 支持多种典型拓扑结构配置,包括立方体、超立方体和环面拓扑 [13] - 立方体拓扑要求在GPU子集上复制专家,形成带有对角边的立方体图,需要每个GPU至少2个专家 [13] - 超立方体拓扑类似于立方体但不包含对角边,需要16个GPU,适合跨16个GPU的专家并行 [13] - 环面拓扑在同一节点内的邻居GPU上复制专家,在邻节点GPU上复制另一个专家,形成环面图 [13]