在这篇文章中,我们将讨论专家混合器(MOE)架构是什么,MOE模型的内部工作原理,以及它与现有模型架构有何不同。
专家混合器是一种集合方法,将整个问题分解为多个子任务,并在每个子任务上对一组专家进行训练。MOE模型将使用不同的学习者(专家)来覆盖不同输入数据。
MOE架构主要由两个核心组件组成。
专家层 Expert layers
门控网络 Gating Network
Expert Layers
专家层的混合器由一组专家组成,这些专家被训练成特定子任务的专家。专家层是神经网络层。专家层将被训练以专注于特定领域。
每个专家层都将接收相同的输入模式来进行决策。
Gating Network
门控网络将决定为每条输入数据使用哪些专家。它选择稀疏的专家组合来处理每个输入。
门控网络将被训练来估计哪些专家层更适合处理每条输入数据。根据这个,门控网络将每条输入路由到特定的专家层。
门控网络是MOE架构的核心。它在决定哪些专家可以处理相应输入时扮演着至关重要的角色。正因为如此,只有少数专家被激活来处理输入,从而节省了处理能力和时间。因此,我们能够使用大型网络,同时消耗较少的处理能力。
门控网络和专家层是同时训练的,使得门控网络学习哪些专家层可以信赖来进行预测。
学习过程由两部分组成:
1. 专家参数的学习
2. 门控网络参数的学习
门控网络可能使用softmax激活函数来输出为输入选择哪些专家的概率。
专家混合(MOE)可以在我们能够将大问题分解为子问题的情况下用于任何地方。如果我们无法将问题分解为子问题,则最好采用传统的层次建模方法。
例如,在语言理解任务中,我们可以使用专家混合模型。每个专家集群学习处理单独的词性或特殊语法规则。
在图像分类任务中,我们可以训练每个专家集群来理解不同类别的数据。
随着神经网络架构变得越来越复杂,处理不同数据、处理各种响应以及最小化处理能力和时间,专家混合模型将占据主导地位。
你可以在以下GitHub仓库中找到Pytorch实现的专家混合模型(MOE)的实现。