上周中的时候, 同事给我了一份线上 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 相关的技术演进以前写过一篇
当然产生这样的结果有几方面可能的因素:
- Shared Expert 的重要性, 通过 Shared Expert 消除了一些专家之间的影响, 使得 Routed Expert Overlap 的概率降低?
- 本质上就是 Routed Expert 数量的影响?
- 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 的整个训练流程从范畴论的意义上来看:
- 首先是 V3-Base 的模型本质上是通过一系列数据集的 Pre-train 流程构成了一个预层范畴(Presheaf).
- R1-Zero 是基于 V3-Base 的 Presheaf 上来强化了一些 Morphism 的权重, 而这些权重在 MoE 模型的底子上使得模型具有了更强的泛化能力.
- 然后在 V3-Base 的基础上混合 R1-Zero 的 Coldstart 数据和一些 General samples 来构建最终的 R1
比较好奇的是在整个后训练的过程中, 不知道 DeepSeek 是否记录了梯度更新的情况, 感觉这个地方配合 SAE 做一些分析可能会有更多的发现, 个人觉得虽然 ORM 取得了很好的结果, 而 PRM 本身还有一些过程上的缺陷, 是否可以在 SAE 的视角上来看出更多的原因, 并且某种意义上还可以给 ORM 训练输出一些更加抽象泛化的约束能力.
当然这样也会面临一个比较大的算力的挑战, SAE 的算力消耗和 RL 工作流的整体效率上的一个取舍问题.
4. MoE ScalingLaw
本文开头提到了一个比较有趣的说法:“Dense 模型适合 toB 业务,MoE 模型适合 toC 业务”, GPT4 是 MoE 模型吧, 它适合 toB 还是 toC? Llama3 是一个 Dense 模型吧? 它适合 toB 还是 toC? 本质的问题是算力的约束下 MoE 成为继续提高 Scaling 的一个必然手段. 当然 MoE 模型本身的 Gating 数值稳定性问题和 Reasoning 模型本身通常设置的温度参数相对较低, 使得模型的幻觉程度有所增加而不太适合一些 toB 的业务场景.
最近还有一篇《Chain-of-Experts: 释放 MoE 专家的沟通潜能》[2]挺有意思的, 即通过在同一层的专家之间的互相处理来得到最后的 output hidden. 实际上这里又有了一些 RNN 的味道. 但是这样的机制如果迭代次数多了感觉很难去兼顾训练和推理的效率.
从本文第一节的配图上来看, 似乎某种程度上能够得出和 DeepSpeed-MoE[3]中提出的 pyramid-MoE 相似的结构, 随着模型的层数越来越深, 专家专业化程度越来越高, 相应的专家数量和 TopK 选择数量也需要对应的提高?
其实这也是我最近在考虑的一个问题, MoE 的本质是否和 HNSW(Hierarchical Navigable Small Word)算法某种程度上有相似性?
在下面这篇文章中也介绍了一些 HNSW/CAGRA GPU 加速处理的内容
《英伟达 GB200 架构解析 3: 从搜广推算法的视角来看待 AI 基础设施演进》
那么借助 Grace+Blackwell 的架构, 是否还能做出点有趣的东西呢? 大概想到一个增量 MoE 的算法:
- 首先按照一个相对细粒度的模型进行训练, 例如 256 Routed Experts, TopK=8
- 例如训练到 500B tokens 时, 模型逐渐添加一些新的专家在后面若干层
- 反复训练的过程中把模型逐渐迭代成一个金字塔结构.
- 最后在 PostTraining 过程中, 基于 SAE 或者某些层的 MoE 路由规则冻结一些 Expert 的参数或者是在这个基础上做一些 KL 散度的约束来降低幻觉?
为什么需要 Grace 呢, 因为某种程度上还是需要 CPU 侧的更大的内存空间来做一些专家权重的置换. PCIe 本身的带宽还是太小了. 当然这样的模型部署时在推理阶段可能还有更多的挑战. 设计模型架构时兼顾推理性能是必须要考虑的一个因素了, 这部分内容暂时还没想明白, 隐约觉得在这样的一个模型下, 顺便把 Next Few layer 的 Expert Prediction/Prefetch 做了可能是一条路.
这一点非常认同飞刀老师的一个观点《李飞飞:AI 下半场打“系统战”,大模型预训练将走向寡头化》
目前,阿里云正在 GPU 加 CPU 的异构资源池上做优化。未来,数据库要研发的关键能力是将昂贵的 GPU 尽可能地省下来做最珍贵的计算和缓存,将次要的计算和缓存推到 CPU 加内存和存储的三层池化中,让在线推理变得更低成本。
在基础设施和分布式系统的视角来看, 和模型的协同还有更多的工作要做.
参考资料
[1]Semantic Specialization in MoE Appears with Scale: A Study of DeepSeek-R1 Expert Specialization: https://arxiv.org/pdf/2502.10928
[2]Chain-of-Experts: 释放 MoE 专家的沟通潜能: https://sandy-server-87f.noti...
[3]DeepSpeed-MoE: https://arxiv.org/pdf/2201.05596
END
来源:GiantPandaLLM
推荐阅读
- 实例特定 Bottleneck+ 非对称解耦 Head,边缘设备精度突破新高度
- SGLang MLA 实现解析
- 美团基于 SGLang 提供 INT8 无损满血版 DeepSeek R1 部署方案
- 革新文本-图像检索,视觉 Prompt 预测+轻量训练性能超 BLIP2
欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区嵌入式AI专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。