深圳Yolo 视觉
深圳
立即加入
词汇表

混合专家模型 (MoE)

探索混合专家模型 (MoE),这是一种突破性的 AI 架构,可为 NLP、视觉、机器人等领域提供可扩展、高效的模型。

专家混合(MoE)是一种专门的 神经网络 (NN)架构,旨在 在不相应增加计算成本的情况下有效地扩展模型容量。与传统的 "密集 "模型(每个参数对每个输入都有效)不同,MoE 模型采用了一种称为 条件计算技术。这样,系统就可以只动态激活总参数中的一小部分,即 "专家 "参数。 这使得系统可以根据输入数据的具体要求,只动态激活总参数中的一小部分,即 "专家 "参数。利用这种 稀疏激活,研究人员可以训练大规模系统,如 大型语言模型 (LLM)。 大型语言模型 (LLM) 推理延迟和速度。 模型的推理延迟和速度。

MoE 架构的核心组成部分

MoE 框架用稀疏的 MoE 层取代了标准的密集层。 这两个组件协同处理信息:

  • 专家网络这些是 独立的子网络,通常是简单的 前馈网络 (FFN),专门处理不同类型的数据模式。 处理不同类型的数据模式。例如,在 自然语言处理(NLP) 任务中,一位专家可能专注于语法结构,而另一位专家则擅长成语表达。
  • 门控网络(路由器):路由器充当流量控制器。对于每个输入标记或图像 补丁,它都会通过一个 软最大函数计算概率分布,以确定哪些专家 最适合处理该特定输入。它通常会将数据路由到 "Top-K "专家(通常为 1 或 2),确保模型的绝大部分处于非活动状态,从而节省计算资源。

集合模型与模型集合

虽然这两种架构都涉及多个子模式,但关键是要区分 专家混合物模型集合

  • 模型组合:在 方法中,多个不同的模型会独立处理相同的输入 独立处理相同的输入,然后将它们的预测结果汇总,以提高 准确性。这种方法的计算成本 与模型数量成线性关系,因为每个推理都要运行每个模型。
  • 混合专家:混合专家是一个单一的统一模型,不同的输入通过不同的路径 通过网络。只有选定的专家才会被执行,从而使模型的参数数量极大 但计算量稀少。这就实现了 可扩展性,这是密集型模型无法比拟的。

实际应用

MoE 架构已成为现代高性能人工智能的基石,尤其是在需要大量知识保留和多任务处理能力的场景中。 尤其是在需要大量知识保留和多任务处理能力的场景中。

  1. 高级语言生成:著名的基础模型,如 Mistral AI 的 Mixtral 8x7B和Google的 Switch Transformers、 采用 MoE 处理各种语言任务。通过将标记路由到专门的专家,这些模型可以掌握 同时掌握多种语言和编码语法,而无需像同等规模的密集模型那样付出高昂的训练成本。 同等规模的密集模型。
  2. 可扩展计算机视觉:在计算机视觉(CV 在计算机视觉 (CV) 领域,MoE 可用于创建 多功能骨干,如 物体检测和图像分类。一个 基于 MoE 的视觉模型(如Google的视觉 MoE(V-MoE))可以 专门的专家来识别不同的视觉特征,如纹理和形状,从而提高在海量数据集上的性能。 海量数据集(如 ImageNet.当前的高效模型 如 YOLO11等当前的高效模型依赖于优化的密集架构,但 但未来的研发项目(如YOLO26)正在探索先进的 但未来的研发项目(如 YOLO26)正在探索先进的架构策略,以最大限度地实现尺寸与速度之间的权衡。

路由逻辑示例

了解路由机制是掌握 MoE 工作原理的关键。以下内容 PyTorch片段演示了一个简化的选取机制 为给定输入批次选择前两名专家。

import torch
import torch.nn as nn

# A simple router selecting the top-2 experts out of 8
num_experts = 8
top_k = 2
input_dim = 128

# The gating network predicts expert relevance scores
gate = nn.Linear(input_dim, num_experts)
input_data = torch.randn(4, input_dim)  # Batch of 4 inputs

# Calculate routing probabilities
logits = gate(input_data)
probs = torch.softmax(logits, dim=-1)

# Select the indices of the most relevant experts
weights, indices = torch.topk(probs, top_k, dim=-1)

print(f"Selected Expert Indices:\n{indices}")

培训方面的挑战

尽管效率很高,但 MoE 模型还是给训练过程带来了复杂性。 训练过程的复杂性。一个主要挑战是 负载平衡;门控网络可能会趋于一种状态,即它会把所有东西都路由给少数 "受欢迎 "的专家。 "受欢迎 "的专家,而其他专家则缺乏训练。为了避免这种情况,研究人员采用了辅助 损失函数 的损失函数。此外,实施 MoE 还需要复杂的 分布式培训基础设施,以管理 专家之间的通信。 GPU 之间的通信。像 Microsoft DeepSpeedTensorFlow Mesh等库就是专门为处理这些 并行化障碍。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入