专栏名称: GiantPandaCV
专注于机器学习、深度学习、计算机视觉、图像处理等多个方向技术分享。团队由一群热爱技术且热衷于分享的小伙伴组成。我们坚持原创,每天一到两篇原创技术分享。希望在传播知识、分享知识的同时能够启发你,大家一起共同进步(・ω<)☆
目录
相关文章推荐
GiantPandaCV  ·  《超大规模AI实战手册》PDF领取 ·  16 小时前  
GiantPandaCV  ·  从DeepSeek MoE专家负载均衡谈起 ·  昨天  
GiantPandaCV  ·  从DeepSeek ... ·  2 天前  
GiantPandaCV  ·  SGLang MLA 实现解析 ·  3 天前  
51好读  ›  专栏  ›  GiantPandaCV

从DeepSeek MoE专家负载均衡谈起

GiantPandaCV  · 公众号  · 3D  · 2025-03-12 09:55

正文

上周中的时候, 同事给我了一份线上DeepSeek-R1推理的Expert激活的数据用来研究一些专家负载均衡的算法, 当然这些线上数据来自于公司内部的请求, 从中观测出前面10层专家基本上是相对均衡的, 而越到后面不均衡程度差异越大. 当时讨论到这个问题时, 是怀疑内部的一些请求是否专注于电商领域而带来的不平衡特性, 于是做了一些研究. 恰好搜到Intel的一篇论文 《Semantic Specialization in MoE Appears with Scale: A Study of DeepSeek-R1 Expert Specialization》 [1] 有一些基于语义的MoE分析专家的专业性相关的问题, 再加上前几天看到某个公众号采访某院长的一个比较有趣的说法:“Dense模型适合toB业务,MoE模型适合toC业务”. 因此做了一些分析, 在此记录下来.

1. 专家Overlap分析

从这篇论文的第一个Word-in-Context的实验来看, DeepSeek-R1的前面十层专家Overlap的概率相对于较高, 和线上的一些数据分析是一致的.

比较特别的是在第十层后,不同语义和相似语义之间的区分度完全显现出来了, 而模型本身因为细粒度MoE(256选8)而产生的区分度也显著降低了, 同时论文还对比了Mistral的两个MoE模型, 它采用8选2的方式, 看来语义间对不同专家的区分度有很大的差距. 这个结论也支撑了DeepSeek逐渐向更加细粒度专家的技术路线的正确性, DeepSeek MoE相关的技术演进以前写过一篇

《详细谈谈DeepSeek MoE相关的技术发展》

当然产生这样的结果有几方面可能的因素:

  1. Shared Expert的重要性, 通过Shared Expert消除了一些专家之间的影响, 使得Routed Expert Overlap的概率降低?
  2. 本质上就是Routed Expert数量的影响?
  3. R1强化学习的工作流对于Expert Specialization进一步增强了?

但是值得注意的是另一个问题是, 在模型的后面20层内, 层间的Overlap的差异还是很大的, 并且没有进一步的下降, 这个和我拿到的线上的数据分布也是相似的.

这里引入一个思考, 每一层模型的AlltoAll通信时间实际上是受到分布式部署的带宽和延迟约束的, 因此模型深度过深后将会影响到TPOT, 虽然可以用一些ScaleUP的办法来解决, 但是看看GB200的可靠性和成本, 这种取舍是不太恰当的.另一方面, 看到上图中第40层overlap有明显的抖动, 一方面是模型在后面的层中还可以更加稀疏来进一步降低Overlap, 是否也会有一个类似的ScalingLaw我们在稍微后面的章节来分析.

2. SAE分析

这篇论文另一个亮点是基于Sparse Auto Encoder的特征来分析专家的路由模式. 关于SAE以前写过几篇分析

《谈谈大模型可解释性》

《谈谈DeepMind会做算法导论的TransNAR并引出基于SAE-GNN的可组合Transformer猜想》

从论文中SAE的分析来看, 能够得出不同的专家在负责不同的推理以及认知专业化的结论, 这和DeepSeek设计细粒度MoE和专家专业化的初衷是匹配的.

其实渣B一直在建议从SAE的角度来分析大模型, 并通过对SAE Activation的约束来作为强化学习工作流的一种手段,

SAE对于概念的可视化解释, Anthropic和OAI都做了相应的可视化展示, 例如Anthropic的多模态对金门大桥的概念

OAI和Claude都在这方面有了蛮长时间的布局, 而国内相对还是落后了一些.

3. 从范畴论的视角看R1

这是一个烂尾很久的专题, 一直想抽一周的时间来好好分析并写一篇笔记, 但是最近几个月不停的在各种项目的死线上挣扎. 先简短的写一些吧. 其实R1的整个训练流程从范畴论的意义上来看:

  1. 首先是V3-Base的模型本质上是通过一系列数据集的Pre-train流程构成了一个预层范畴(Presheaf).
  2. R1-Zero是基于V3-Base的Presheaf上来强化了一些Morphism的权重, 而这些权重在MoE模型的底子上使得模型具有了更强的泛化能力.
  3. 然后在V3-Base的基础上混合R1-Zero的Coldstart数据和一些General samples来构建最终的R1

比较好奇的是在整个后训练的过程中, 不知道DeepSeek是否记录了梯度更新的情况, 感觉这个地方配合SAE做一些分析可能会有更多的发现, 个人觉得虽然ORM取得了很好的结果, 而PRM本身还有一些过程上的缺陷, 是否可以在SAE的视角上来看出更多的原因, 并且某种意义上还可以给ORM训练输出一些更加抽象泛化的约束能力.







请到「今天看啥」查看全文