@jbhuang0604: Huge! It’s amazing how often Noam’s papers end up at the center of the field. In many tutorial videos I’ve made, they’v…

X AI KOLs Following 新闻

摘要

The article provides a detailed explanation of Mixture of Experts (MoE) in transformers, covering routing, load balancing, and recent innovations like fine-grained experts. It also highlights the significance of Noam Shazeer's research contributions and his move from Google to OpenAI.

Huge! It’s amazing how often Noam’s papers end up at the center of the field. In many tutorial videos I’ve made, they’ve been a recurring foundation for explaining key ideas. GOAT! MoE: https://youtu.be/0QQlYR1r6pQ SwiGLU: https://youtu.be/JRaPNrpsQ9s MQA: https://youtu.be/Y-o545eYjXM Transformer: https://youtu.be/rcWMRA9E5RI
查看原文
查看缓存全文

缓存时间: 2026/06/18 06:04

Huge!

It’s amazing how often Noam’s papers end up at the center of the field. In many tutorial videos I’ve made, they’ve been a recurring foundation for explaining key ideas. GOAT!

MoE: https://youtu.be/0QQlYR1r6pQ SwiGLU: https://youtu.be/JRaPNrpsQ9s MQA: https://youtu.be/Y-o545eYjXM Transformer: https://youtu.be/rcWMRA9E5RI


TL;DR: 混合专家架构通过将每个词元仅路由到稀疏的专家子集,从而在扩展模型参数的同时保持训练和推理效率,是许多先进AI模型的关键技术。

前馈网络(FFN)如何存储和检索事实

变换器主要由堆叠的注意力层和前馈网络(FFN)交替构成。注意力机制捕获词元间的上下文依赖,而FFN负责从模型权重中检索事实信息。以词元嵌入向量为例,假设有一个句子“台湾的首都是这里”,模型需要正确补全。FFN包含三个步骤:

  • 上投影:通过线性层(权重矩阵 W_up,偏置向量)将输入嵌入向量 x 映射到隐藏特征维度(通常为输入维度的4倍),得到向量 zW 的每一行可视为一个语义概念,点积衡量输入与这些概念的相关性。例如,某些问题(语义方向)可能对输入词元有高响应(正值),其他则接近零或负值。
  • 非线性激活:应用ReLU等激活函数,移除不相关的响应,得到激活向量 a
  • 下投影:另一个线性层(权重矩阵 W_down)将 a 映射回原始维度。W_down 的列向量编码与特定问题相关的事实信息(如“台北”、“台积电”等)。输出 yaW_down 列的加权求和。

最后通过残差连接将 y 加回原始词元嵌入,既保留上下文信息,又整合新检索的事实。

从密集FFN到稀疏混合专家(MoE)

增大FFN的隐藏维度可提升模型表现力(更多问题、更细粒度事实),但会拖慢速度并增加内存。解决方法:每个词元只需激活少量相关单元。稀疏混合专家核心思想:将一个大FFN划分为多个更小、更专业的“专家”网络,对每个词元仅激活稀疏的子集。

路由机制

路由器为每个词元计算与各专家的分数(logit),通过softmax获得概率分布,选择概率最高的前k个专家。输入词元被发送至选中的专家处理,输出为这些专家输出的加权平均(权重为路由器概率)。路由器实现简单:对每个专家有一个可学习的权重向量,logit = 点积(输入嵌入, 专家权重向量)。

细粒度专家与共享专家

最新工作(如DeepSeek-V3)使用大量小专家(256个),每个词元激活8个,称为“细粒度专家”。这显著提升性能,已被Qwen 2.5、Kim K2等开源模型采用。另一设计是包含一个始终激活的共享专家,学习通用信息;路由专家聚焦于特定模式。但实验结果不一:DeepSeek受益,而OLMoE未观察到改进,可能因为将路由专家之一转为共享专家限制了专家组合的多样性。

专家容量与负载均衡

容量与溢出问题

在分布式部署中,每个设备有固定容量(可处理词元数)。例如16词元、8专家、容量系数设为1时,每专家容量为2。但路由动态且不平衡,可能导致某些专家溢出(词元被丢弃)。实际中,丢弃的词元经残差连接直接传递至下一层,计算被跳过。增加容量系数可减少溢出,但增加计算与通信成本(填充空槽导致浪费)。

无丢弃的块稀疏矩阵乘法

传统实现强制每专家获得相同数量的词元,造成“溢出或浪费”的权衡。新方法:用块对角矩阵乘积表示专家计算。当各专家接收不同词元数时,每个块大小不同(非均匀路由),通过块稀疏矩阵乘法内核计算,无需实例化零块,从而避免丢弃或填充。

训练中的负载均衡

初始随机权重时,所有专家一样差。若路由器将多数词元分配给少数专家,这些专家更新更多,表现更好,形成自我强化,其他专家几乎无效。负载均衡目标:均匀分配词元处理。

方法一:带噪声的Top K门控

向logit添加高斯噪声,促进路由器选择更多样化的专家集。还可为每专家增加可学习的缩放因子。

方法二:软约束(辅助损失)

  • 专家重要性:对整个批次中分配给某专家的路由器概率求和。鼓励各专家重要性均匀分布。可用变异系数(CV = 标准差/均值)度量:均匀时CV=0。但此指标可能失真——例如前4个专家各积0.25,后4个各积0.125,重要性和均匀(CV=0),但实际词元分配严重不均(前4接收5个词元,后4接收0个)。
  • 直接负载:测量路由到每个专家的词元数量,更直接地鼓励各专家接收大致相等的训练样本。

来源

YouTube视频:Huge! It’s amazing how often Noam’s papers end up at the center of the field…

Noam Shazeer (@NoamShazeer): I’m excited to share that I’ll be joining OpenAI and look forward to working with the exceptional team there.

It was a difficult decision to move on. I’m incredibly proud of the amazing team at Google and everything we’ve built together. It has been an honor and a pleasure to

相似文章

Transformer 中的专家混合模型 (MoEs)

Hugging Face Blog

Hugging Face 的博客文章,介绍 Transformer 中的专家混合模型 (MoEs) 架构,涵盖从密集模型到稀疏模型的转变、权重加载优化、专家并行计算以及基于 MoE 的语言模型训练技术。

AI2推出的新MoE模型:EMO

Reddit r/LocalLLaMA

AI2发布了EMO,一个混合专家(MoE)语言模型,总参数量14B,其中1B活跃参数,基于1万亿tokens训练,并采用文档级路由,即专家会按领域(如健康、新闻等)进行聚类。