LPLB
搜索文档
DeepSeek悄悄开源LPLB:用线性规划解决MoE负载不均
36氪· 2025-11-20 23: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]
DeepSeek悄悄开源LPLB:用线性规划解决MoE负载不均
机器之心· 2025-11-20 15:13
项目概述 - DeepSeek在GitHub上开源了一个名为LPLB的新代码库,该项目全称为基于线性规划的负载均衡器 [1][2][5] - 该项目旨在利用线性规划算法优化混合专家模型中的专家并行工作负载分配,以解决训练过程中的动态负载不均衡问题 [5][9] - 尽管项目在GitHub上的star数量尚未超过200,且关注度不高,但有观点认为这表明公司正在为解决模型正确性和吞吐量瓶颈做准备 [1] 技术原理与流程 - LPLB通过三个核心步骤实现动态负载均衡:动态重排序、构建副本以及针对每个批次的数据求解最优的Token分配方案 [5] - 其专家重排序过程由EPLB协助完成,实时工作负载统计信息可通过用户提供、torch.distributed收集或直接从Deep-EP缓冲区获取 [6] - 求解器使用了内置的线性规划求解器,实现了单流式多处理器内点法,并利用NVIDIA的cuSolverDx和cuBLASDx库进行高效线性代数运算 [6] - 该方案将负载均衡的抽象提升到了pipeline层级,其求解过程非常轻量化,不会占用过多计算资源 [6] 性能与优化 - LPLB通过求解线性规划问题,在遵守边容量限制的前提下,沿冗余专家形成的连接边重新分配Token,以最小化专家并行组内的负载不均衡 [11] - 通信优化方面,实时工作负载的同步使用NVLINK和NVSHMEM进行优化,替代了传统的torch.distributed.allreduce,从而大幅降低通信开销 [11] - 求解器在节点内优化大约需要100微秒,对于非常小的批次大小,此延迟可能不可忽略 [11] 拓扑结构 - LPLB允许通过修改r2o矩阵来定义专家副本的分布方式,支持几种典型拓扑结构,包括立方体、超立方体和环面 [14][17] - 立方体拓扑要求在GPU子集上复制专家,形成带有对角边的立方体图,且每个GPU至少需要2个专家,适合在8 GPU的EP子组内进行平衡 [17] - 超立方体拓扑类似于立方体但不包含对角边,需要16个GPU,适合跨16个GPU的专家并行 [17] - 环面拓扑在同一节点内的邻居GPU上复制一个专家,在邻节点的GPU上复制另一个专家,形成环面图,对全局平衡有效但效率通常低于立方体 [17] 项目阶段与意义 - 该项目目前处于早期研究阶段,性能改进情况仍在评估中,尚未被用于生产流程 [8] - 该库的创新点在于引入线性规划这一数学工具来实时计算最优分配,并利用底层的NVSHMEM技术来打破通信瓶颈 [15] - 该项目本质上是试图解决大模型训练中的“木桶效应”问题,即训练速度往往取决于负载最重的那个GPU,对于研究MoE架构训练加速的开发者而言是一个有价值的参考实现 [15]