当前位置: 首页 > news >正文

DeepSeek那把看不见的算盘

去年有个朋友问我,为什么同样是百亿参数的大模型,DeepSeek跑起来就是比别人快。我当时正在吃饭,筷子夹着一块回锅肉,想了半天说了句:“你家里请了八个保姆,但同时干活的只有两个,剩下六个在旁边喝茶。”

这个比喻不太尊重保姆这个职业,但它确实是我能想到的最直观的解释DeepSeek MoE架构的方式。

MoE,Mixture of Experts,混合专家模型。这名字取得挺唬人,听着像是某个跨国咨询公司的组织架构。实际上它的核心逻辑朴素到让人怀疑为什么直到最近几年才被广泛采用:与其让整个模型处理每一个token,不如训练一堆“小专家”,每次只激活其中几个。

DeepSeek-V2把这个思路做到了极致。总参数量236B,但每次推理只激活21B。这个比例在业内算是相当激进的。作为对比,Mixtral 8x7B总参数46.7B激活12.9B,差不多激活四分之一强。DeepSeek把激活比例压到了不到十分之一。

这意味着什么?意味着你看到的那个236B的庞大数字,大部分时候只是在硬盘上安静地躺着。真正的计算发生在那一小撮被选中的专家身上。

那问题来了:怎么选专家?

这就是DeepSeek论文里让我盯着看了二十分钟的那部分:门控机制。传统的MoE门控说白了就是个分类器,看哪个专家顺眼就发给谁。DeepSeek在此基础上做了几件事。

第一件,他们引入了共享专家。所有token无论如何都会经过这部分。你可以理解为通识教育,不管你是学物理的还是学历史的,数学总得会一点。这部分参数不多,但能保证模型在基础能力上不翻车。

第二件,细粒度专家分割。传统MoE可能就8个专家,DeepSeek-V2把这个数字拉到了160个。每个专家更小更专。好处是组合方式更多样,泛化能力更强;坏处是门控网络的压力暴增——你得从160个候选里挑出最合适的几个,还不能挑错了。

第三件,也是我觉得最有意思的,是他们设计了一种负载均衡损失,让专家们尽量“均匀地忙”。做过分布式系统的都知道,负载均衡说起来容易做起来难。有的专家天生就是热门——比如处理“the”“a”这种高频词的专家,请求量大到爆炸;有些专家可能冷冷清清。如果不加干预,训练到最后你会发现有几个专家累死了,其他专家在那儿打麻将。

DeepSeek的解决方案不是强制分配,而是通过辅助损失函数温柔地引导。训练过程中,模型被鼓励把token分给相对冷门的专家,同时又不至于为了均衡而均衡导致路由质量下降。这个平衡点找得相当有水平。

我个人猜测,DeepSeek团队在这个门控机制上花了大量时间调参。因为MoE的训练稳定性一直是个大问题。你训着训着,突然发现某个专家的梯度爆炸了,或者某个专家完全不更新了。这种情况在单卡训练大模型的时候很少遇到,但在MoE架构里简直是家常便饭。

他们应该还有一个没有在论文里详细展开的技巧:专家权重的初始化策略。MoE对初始化极其敏感,稍有不慎就会导致专家坍缩——所有token都往一两个专家那里挤,剩下的一百多个专家形同虚设。从最终效果来看,DeepSeek的初始化策略相当成功。

说到实际体验,我拿DeepSeek-V2跑过一些需要复杂推理的任务。最直观的感受是它的“犹豫”时间很短。传统的大模型在生成复杂回答前会有一段微妙的停顿,那是整个模型在处理上下文。DeepSeek的响应曲线更平滑,我猜这跟激活参数少、计算路径短有直接关系。

但MoE也不是没有代价。最大的问题是显存占用。虽然每次只激活21B参数,但236B参数都得在显存里待着,因为你不知道下一秒会激活哪个专家。这意味着部署门槛其实没怎么降——你依然需要能装下236B参数的硬件。DeepSeek在这件事上做了模型量化方面的优化,但物理定律摆在那里,该花的钱还是得花。

另一个隐忧是微调。MoE模型的微调难度比稠密模型高一个量级。全量微调236B参数不现实,LoRA微调又要面临“微调哪些专家”的选择题。我见过一些社区尝试用LoRA微调MoE模型然后踩坑的帖子,最常见的问题就是微调完后发现模型在特定任务上反而退化了,因为微调破坏了专家之间的协作平衡。

不过这些问题跟MoE带来的效率提升相比,我觉得是值得的。尤其是在推理成本越来越成为瓶颈的当下,MoE几乎是目前性价比最高的方案。DeepSeek在这条路上走得相当靠前,而且从V1到V2的迭代速度来看,他们对这套架构的理解已经相当深入。

最近听说他们在研究进一步稀疏化MoE,让激活参数占比更低。如果真的能做到总参数的二十分之一甚至三十分之一激活,那算力成本的账就要重新算了。当然这是后话,等真有成果出来再聊。

http://www.jsqmd.com/news/1182436/

相关文章:

  • 常州合规持证收钻门店实测榜单,2026 彻底规避线上低价引流回收套路 - 每日生活报
  • 猫抓浏览器扩展深度解析:网页媒体资源智能嗅探完整指南
  • Gemma-4-E4B-it-8bit模型转换技术:从原始模型到MLX格式的完整流程
  • 3大核心功能彻底解决Windows 10/11经典游戏兼容性问题:dxwrapper完全指南
  • 萧邦中国官方售后服务中心|服务热线及门店详细地址权威信息通知(2026年7月最新) - 萧邦中国官方服务中心
  • Llama-3.1-8B_rai_1.7.1_npu_16K的ONNX运行时配置与优化技巧
  • 如何在AMD NPU上部署Qwen2.5_3B_Instruct_rai_1.7.1_npu_16K?超详细快速入门指南
  • AI进教室vs教师站讲台:未来三年教育岗位正在重新洗牌
  • OBS多路推流插件终极指南:5分钟实现多平台同步直播的完整教程
  • 网页媒体资源智能捕获方案:开源浏览器扩展的技术解析与实践指南
  • 【公众号】baoyu-skills 微信公众号自动编辑与发布机制
  • Origin 数据导入的 7 个坑和 SCI 投稿排版的 5 条红线——不想被退回来就照着检查
  • FIGConvNet DrivAerML Surface:NVIDIA革命性AI模型如何加速汽车空气动力学计算
  • 终极黑苹果配置指南:OpCore-Simplify让OpenCore EFI搭建从复杂到简单
  • AMD Ryzen AI 1.7.1与DeepSeek-R1蒸馏模型的完美结合:性能提升秘籍 [特殊字符]
  • 计算机毕业设计之基于SpringBoot少儿编程网站的设计与开发
  • Java 23 种设计模式:从踩坑到精通 | 番外:工厂方法 vs 抽象工厂 —— 从单产品到产品族,架构如何演进?
  • AMD Ryzen AI生态新成员:Meta-Llama-3.1-8B-Instruct_rai_1.7.1_npu_16K模型评测与前景展望
  • 免费解锁Wand专业版:终极完整指南,告别订阅费
  • 高级技巧:如何微调Qwen2.5-Coder-1.5B-Instruct_rai_1.7.1_npu_4K以适应特定编程语言
  • 如何掌握PHP聚合根(Aggregate Root)设计与实现:state-of-the-union项目的终极指南
  • 【厦门集美区地域拆解】厦门首饰回收哪家正规 公安备案资质可开具书面回收单据 - 讯息早知道
  • 猫抓浏览器扩展:网页媒体资源一键获取的终极解决方案
  • Prettier + ESLint + Cursor三端协同配置,深度解耦格式化冲突的7步标准化流程
  • Llama-3.2-1B_rai_1.7.1_npu_4K模型文件结构解析:从ONNX到量化参数
  • LuaJIT字节码反编译终极指南:如何高效恢复Lua源代码
  • DeepSeek是如何让token们学会偷懒的
  • 【公众号】baoyu 的 `remote-api` 模式
  • AMD量化模型兼容性指南:Qwen2.5-VL-7B-Instruct-w4a16-asym-torchao-v0.17.0版本锁定解析
  • AMD SmolLM-135M-Instruct_rai_1.7.1_npu_4K模型对比分析:与其他轻量级模型的性能差异