Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Mixture of Experts (MoE)

专家混合模型 (MoE) 会将每个 token 路由至少数专家子网络,因此模型的总参数量增长速度远快于每个 token 的计算量。

专家混合 (MoE) 是一种神经网络架构,它将模型的一部分拆分为许多并行子网络,称为专家,并使用一个小型学习路由器,将每个输入发送给其中少数几个专家。由于每个token或图像块只经过一部分专家,参数总量的增长速度可以远远超过每个输入所需的计算量。Mixtral 8x7B拥有 470 亿个参数,但每个 token 只使用 130 亿个;DeepSeek-V3则在其 6710 亿个参数中激活 370 亿个。如今大型语言模型 (LLM)使用的路由门控稀疏 MoE 层,建立在 Google 2017 年提出的稀疏门控 MoE 层之上;该层在堆叠的 LSTM层之间实现了 1370 亿个参数。

MoE 层的工作原理#

在 Transformer中,MoE 层通常会替换每个自注意力模块之后的前馈网络 (FFN)。该层包含 N 个形状相同的专家 FFN,以及一个路由器;路由器是一个对每个 token 的所有专家进行评分的单层线性网络。token 会发送给得分最高的 k 个专家;这些专家的输出会根据路由器的归一化分数加权求和,其余专家不处理该 token。Mixtral 在每一层选用 8 个专家中的 2 个,而 DeepSeek-V3 会选用 256 个较小路由专家中的 8 个,并将每个 token 也发送给一个共享专家。由于每一层都会独立进行路由,同一个 token 在不同深度可以使用不同专家,同一句子中的两个 token 也可以在同一层走不同路径:

Mixtral 中的专家并未按主题进行专门分工。作者没有发现专家明确对应生物学或哲学等主题;路由实际遵循的是语法,因此 Python 代码中的 self 等 token 和缩进 token 往往会进入同一批专家。

负载均衡与专家容量#

刚初始化的路由器往往偏向少数几个专家;这些专家随后训练得更快,并吸引更多 token,而其余专家则处于闲置状态。下面的六 token 示例通过一个有 8 个专家的 top-2 层进行路由,并统计每个专家收到的 token 数量:

import torch

torch.manual_seed(0)
dim, num_experts, top_k = 32, 8, 2
experts = torch.nn.ModuleList(
    torch.nn.Sequential(torch.nn.Linear(dim, 4 * dim), torch.nn.GELU(), torch.nn.Linear(4 * dim, dim))
    for _ in range(num_experts)
)
router = torch.nn.Linear(dim, num_experts, bias=False)
tokens = torch.randn(6, dim)

# 路由器保留每个 token 得分最高的 2 个专家,并通过 softmax 将分数转换为混合权重
scores, chosen = router(tokens).topk(top_k, dim=-1)
weights = scores.softmax(dim=-1)
out = torch.zeros_like(tokens)
for e, expert in enumerate(experts):
    token_idx, slot = (chosen == e).nonzero(as_tuple=True)  # 选择专家 e 的 token
    out[token_idx] += weights[token_idx, slot, None] * expert(tokens[token_idx])

print("Experts per token:", chosen.tolist())
print("Tokens per expert:", torch.bincount(chosen.flatten(), minlength=num_experts).tolist())

它会输出专家配对 [[3, 6], [7, 6], [0, 7], [3, 1], [6, 1], [2, 3]] 和各专家的计数 [1, 2, 1, 3, 0, 0, 3, 2]:专家 3 和 6 各处理 3 个 token,而专家 4 和 5 没有收到任何 token;每个 token 只经过 8 个专家网络中的 2 个。Switch Transformer将每个 token 路由给单个专家,并扩展到 1.6 万亿个参数;它添加了一个辅助损失项,当 token 和路由器概率均匀分布到各专家时,该损失最小。许多后续 MoE 模型也采用了类似的损失项。DeepSeek-V3 不使用辅助损失,而是在训练过程中上调或下调各专家路由分数中的偏置。训练系统还会限制每个专家在一个批次中可接收的 token 数量,即专家容量;超过上限的 token 会跳过该层的专家,并通过残差连接继续向前传递。

  • 模型集成:多个完整模型分别处理每个输入,再对预测结果求平均或投票,因此每增加一个模型,计算量都会增加。MoE 是一个端到端训练的网络,由路由器为每个 token 选择不同路径。
  • 模型路由:路由器为每个请求选择一个完整模型,例如简单问题使用小模型,难题使用大模型。MoE 路由则是在单个模型的每个 MoE 层内部按 token 进行。
  • 深度混合 (MoD):路由器允许部分 token 跳过整个模块,因此每个 token 的计算量不同。MoD 通常与 MoE 结合使用。
  • 智能体混合 (MoA):多个独立的 LLM 回答提示,随后由更后面的 LLM 层完善这些答案的组合结果。这是一种提示流程,不共享权重。

MoE 在语言和视觉模型中的应用#

许多规模最大的开放权重 LLM 都使用了 MoE 层,包括 DeepSeek-V3、Llama 4、Qwen3 的 MoE 版本,以及 OpenAI 的 gpt-oss。在计算机视觉领域,视觉 MoE (V-MoE)将视觉 Transformer (ViT)的部分 FFN 层替换为专家,并对单个图像块进行路由;它在推理计算量仅为一半的情况下仍达到最先进的准确率,其 150 亿参数版本在 ImageNet上取得了 90.35% 的 top-1 准确率。

内存与服务#

MoE 节省的是计算量,而不是内存:即使每个 token 只用到少数专家,仍需加载所有专家。因此,Mixtral 所需的内存相当于一个 470 亿参数模型,但每个 token 的计算量相当于一个 130 亿参数模型。大型 MoE 模型因此会通过专家并行分布到多块 GPU上,每块 GPU 存放一部分专家,并通过全对全交换,将每个 token 发送到存放其所选专家的设备,再取回结果。DeepSpeed-MoE等框架会在训练时将专家并行与数据并行和张量并行结合使用。边缘视觉模型采用的是稠密路线:YOLO26会在每张图像上运行每一层,因此其内存占用和单张图像的计算量对所有输入都相同。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来