A Mistura de especialistas (do inglês, Mixture of experts ou MoE) é uma técnica de aprendizado de máquina onde múltiplas redes neurais especialistas (aprendizes) são usadas para dividir um espaço de problema em regiões homogêneas. A MoE representa uma forma de aprendizado de ensemble. Elas também eram chamadas de máquinas de comitê.

Teoria básica A MoE sempre possui os seguintes componentes, mas eles são implementados e combinados de forma diferente de acordo com o problema a ser resolvido:

Especialistas

f

1

, . . . ,

f

n

{\displaystyle f_{1},...,f_{n}}

, cada um recebendo a mesma entrada

x

{\displaystyle x}

e produzindo saídas

f

1

( x ) , . . . ,

f

n

( x )

{\displaystyle f_{1}(x),...,f_{n}(x)}

. Uma função de ponderação (também conhecida como função de roteamento ou função de porta)

w

{\displaystyle w}

, que recebe a entrada

x

{\displaystyle x}

e produz um vetor de saídas

( w ( x

)

1

, . . . , w ( x

)

n

)

{\displaystyle (w(x)_{1},...,w(x)_{n})}

. Esta pode ou não ser uma distribuição de probabilidade, mas em ambos os casos, suas entradas são não-negativas.

θ = (

θ

0

,

θ

1

, . . . ,

θ

n

)

{\displaystyle \theta =(\theta _{0},\theta _{1},...,\theta _{n})}

é o conjunto de parâmetros. O parâmetro

θ

0

{\displaystyle \theta _{0}}

é para a função de ponderação. Os parâmetros

θ

1

, ... ,

θ

n

{\displaystyle \theta _{1},\dots ,\theta _{n}}

são para os especialistas. Dada uma entrada

x

{\displaystyle x}

, a mistura de especialistas produz uma única saída combinando

f

1

( x ) , . . . ,

f

n

( x )

{\displaystyle f_{1}(x),...,f_{n}(x)}

de acordo com os pesos

w ( x

)

1

, . . . , w ( x

)

n

{\displaystyle w(x)_{1},...,w(x)_{n}}

de alguma forma, geralmente por

f ( x ) =

i

w ( x

)

i

f

i

( x )

{\displaystyle f(x)=\sum _{i}w(x)_{i}f_{i}(x)}

. Tanto os especialistas quanto a função de ponderação são treinados minimizando alguma função de perda, geralmente por meio da descida de gradiente (gradient descent). Há muita liberdade na escolha da forma precisa dos especialistas, da função de ponderação e da função de perda.

Rede meta-pi A rede meta-pi, relatada por Hampshire e Waibel, usa

f ( x ) =

i

w ( x

)

i

f

i

( x )

{\displaystyle f(x)=\sum _{i}w(x)_{i}f_{i}(x)}

como saída. O modelo é treinado realizando a descida de gradiente na perda de erro quadrático médio

L :=

1 N

k

y

k

− f (

x

k

)

2

{\displaystyle L:={\frac {1}{N}}\sum _{k}\|y_{k}-f(x_{k})\|^{2}}

. Os especialistas podem ser funções arbitrárias. Em sua publicação original, eles estavam resolvendo o problema de classificação de fonemas em sinais de fala de 6 falantes de japonês diferentes, 2 mulheres e 4 homens. Eles treinaram 6 especialistas, cada um sendo uma "rede neural com atraso de tempo" (essencialmente uma rede de convolução multicamadas sobre o espectrograma mel). Eles descobriram que a mistura de especialistas resultante dedicou 5 especialistas para 5 dos falantes, mas o 6o falante (homem) não teve um especialista dedicado; em vez disso, sua voz foi classificada por uma combinação linear dos especialistas para os outros 3 falantes homens.

Misturas adaptativas de especialistas locais As misturas adaptativas de especialistas locais usam um modelo de mistura gaussiana. Cada especialista simplesmente prevê uma distribuição Gaussiana, e ignora totalmente a entrada. Especificamente, o

i

{\displaystyle i}

-ésimo especialista prevê que a saída é

y ∼ N (

μ

i

, I )

{\displaystyle y\sim N(\mu _{i},I)}

, onde

μ

i

{\displaystyle \mu _{i}}

é um parâmetro aprendível. A função de ponderação é uma função linear-softmax:

w ( x

)

i

=

e

k

i

T

x +

b

i

j

e

k

j

T

x +

b

j

{\displaystyle w(x)_{i}={\frac {e^{k_{i}^{T}x+b_{i}}}{\sum _{j}e^{k_{j}^{T}x+b_{j}}}}}

A mistura de especialistas prevê que a saída é distribuída de acordo com a função densidade de probabilidade logarítmica:

ln ⁡

f

θ

( y

|

x ) = ln ⁡

[

i

e

k

i

T

x +

b

i

j

e

k

j

T

x +

b

j

N ( y

|

μ

i

, I )

]

= ln ⁡

[

( 2 π

)

− d

/

2

i

e

k

i

T

x +

b

i

j

e

k

j

T

x +

b

j

e

1 2

‖ y −

μ

i

2

]

{\displaystyle \ln f_{\theta }(y|x)=\ln \left[\sum _{i}{\frac {e^{k_{i}^{T}x+b_{i}}}{\sum _{j}e^{k_{j}^{T}x+b_{j}}}}N(y|\mu _{i},I)\right]=\ln \left[(2\pi )^{-d/2}\sum _{i}{\frac {e^{k_{i}^{T}x+b_{i}}}{\sum _{j}e^{k_{j}^{T}x+b_{j}}}}e^{-{\frac {1}{2}}\|y-\mu _{i}\|^{2}}\right]}

Ela é treinada por estimativa de máxima verossimilhança, isto é, ascensão de gradiente em

f ( y

|

x )

{\displaystyle f(y|x)}

. O gradiente para o

i

{\displaystyle i}

-ésimo especialista é

μ

i

ln ⁡

f

θ

( y

|

x ) =

w ( x

)

i

N ( y

|

μ

i

, I )

j

w ( x

)

j

N ( y

|

μ

j

, I )

( y −

μ

i

)

{\displaystyle \nabla _{\mu _{i}}\ln f_{\theta }(y|x)={\frac {w(x)_{i}N(y|\mu _{i},I)}{\sum _{j}w(x)_{j}N(y|\mu _{j},I)}}\;(y-\mu _{i})}

e o gradiente para a função de ponderação é

[

k

i

,

b

i

]

ln ⁡

f

θ

( y

|

x ) =

[

x

1

]

w ( x

)

i

j

w ( x

)

j

N ( y

|

μ

j

, I )

(

f

i

( x ) −

f

θ

( y

|

x ) )

{\displaystyle \nabla _{[k_{i},b_{i}]}\ln f_{\theta }(y|x)={\begin{bmatrix}x\\1\end{bmatrix}}{\frac {w(x)_{i}}{\sum _{j}w(x)_{j}N(y|\mu _{j},I)}}(f_{i}(x)-f_{\theta }(y|x))}

Para cada par de entrada-saída

( x , y )

{\displaystyle (x,y)}

, a função de ponderação é alterada para aumentar o peso de todos os especialistas que tiveram um desempenho acima da média, e diminuir o peso de todos os especialistas que tiveram um desempenho abaixo da média. Isso encoraja a função de ponderação a aprender a selecionar apenas os especialistas que fazem as previsões corretas para cada entrada. O

i

{\displaystyle i}

-ésimo especialista é alterado para fazer sua previsão mais próxima de

y

{\displaystyle y}

, mas a quantidade de alteração é proporcional a

w ( x

)

i

N ( y

|

μ

i

, I )

{\displaystyle w(x)_{i}N(y|\mu _{i},I)}

. Isso tem uma interpretação Bayesiana. Dada a entrada

x

{\displaystyle x}

, a probabilidade a priori de que o especialista

i

{\displaystyle i}

seja o correto é

w ( x

)

i

{\displaystyle w(x)_{i}}

, e

N ( y

|

μ

i

, I )

{\displaystyle N(y|\mu _{i},I)}

é a verossimilhança da evidência

y

{\displaystyle y}

. Então,

w ( x

)

i

N ( y

|

μ

i

, I )

j

w ( x

)

j

N ( y

|

μ

j

, I )

{\displaystyle {\frac {w(x)_{i}N(y|\mu _{i},I)}{\sum _{j}w(x)_{j}N(y|\mu _{j},I)}}}

é a probabilidade a posteriori para o especialista

i

{\displaystyle i}

, e assim a taxa de alteração para o

i

{\displaystyle i}

-ésimo especialista é proporcional à sua probabilidade a posteriori. Em outras palavras, os especialistas que, em retrospectiva, pareciam ser os bons especialistas a se consultar, são solicitados a aprender com o exemplo. Os especialistas que, em retrospectiva, não o foram, são deixados sozinhos. O efeito combinado é que os especialistas se tornam especializados: suponha que dois especialistas sejam bons em prever um certo tipo de entrada, mas um é um pouco melhor, então a função de ponderação eventualmente aprenderá a favorecer o melhor. Depois que isso acontece, o especialista inferior é incapaz de obter um sinal de gradiente alto e torna-se ainda pior na previsão desse tipo de entrada. Por outro lado, o especialista inferior pode se tornar melhor na previsão de outros tipos de entrada, sendo cada vez mais puxado para outra região. Isso tem um efeito de feedback positivo, fazendo com que cada especialista se afaste do resto e cuide sozinho de uma região local (daí o nome "especialistas locais").

MoE Hierárquico Misturas hierárquicas de especialistas usam vários níveis de roteamento em uma árvore. Cada função de roteamento (gate) é uma distribuição de probabilidade sobre o próximo nível de roteamentos, e os especialistas estão nos nós folha da árvore. Eles são semelhantes a árvores de decisão. Por exemplo, um MoE hierárquico de 2 níveis teria uma função de porta de primeira ordem

w

i

{\displaystyle w_{i}}

, e funções de porta de segunda ordem

w

j

|

i

{\displaystyle w_{j|i}}

e especialistas

f

j

|

i

{\displaystyle f_{j|i}}

. A previsão total é então

i

w

i

( x )

j

w

j

|

i

( x )

f

j

|

i

( x )

{\displaystyle \sum _{i}w_{i}(x)\sum _{j}w_{j|i}(x)f_{j|i}(x)}

.

Variantes A mistura de especialistas, sendo semelhante ao modelo de mistura gaussiana, também pode ser treinada pelo algoritmo de maximização da expectativa, assim como os modelos de mistura gaussiana. Especificamente, durante a etapa de expectativa (E), o "fardo" (burden) de explicar cada ponto de dado é atribuído aos especialistas, e durante a etapa de maximização (M), os especialistas são treinados para melhorar as explicações para as quais obtiveram um alto fardo, enquanto a porta (gate) é treinada para melhorar sua atribuição de fardo. Isso pode convergir mais rapidamente do que a ascensão de gradiente na log-verossimilhança. A escolha da função de porta é frequentemente softmax. Além disso, o roteamento pode usar distribuições gaussianas e famílias exponenciais. Em vez de realizar uma soma ponderada de todos os especialistas, no MoE rígido (hard MoE), apenas o especialista com melhor classificação é escolhido. Isto é,

f ( x ) =

f

arg ⁡

max

i

w

i

( x )

( x )

{\displaystyle f(x)=f_{\arg \max _{i}w_{i}(x)}(x)}

. Isso pode acelerar o tempo de treinamento e inferência. Os especialistas podem usar formas mais gerais de distribuições gaussianas multivariadas. Por exemplo, propôs

f

i

( y

|

x ) = N ( y

|

A

i

x +

b

i

,

Σ

i

)

{\displaystyle f_{i}(y|x)=N(y|A_{i}x+b_{i},\Sigma _{i})}

, onde

A

i

,

b

i

,

Σ

i

{\displaystyle A_{i},b_{i},\Sigma _{i}}

são parâmetros aprendíveis. Em outras palavras, cada especialista aprende a fazer regressão linear, com uma estimativa de incerteza aprendível. Pode-se usar outros especialistas que não distribuições gaussianas. Por exemplo, pode-se usar a Distribuição de Laplace, ou a Distribuição t de Student. Para classificação binária, também foram propostos especialistas em regressão logística, com

f

i

( y

|

x ) =

{

1

1 +

e

β

i

T

x +

β

i , 0

,

y = 0

1 −

1

1 +

e

β

i

T

x +

β

i , 0

,

y = 1

{\displaystyle f_{i}(y|x)={\begin{cases}{\frac {1}{1+e^{\beta _{i}^{T}x+\beta _{i,0}}}},&y=0\\1-{\frac {1}{1+e^{\beta _{i}^{T}x+\beta _{i,0}}}},&y=1\end{cases}}}

onde

β

i

,

β

i , 0

{\displaystyle \beta _{i},\beta _{i,0}}

são parâmetros aprendíveis. Isso foi posteriormente generalizado para classificação multiclasse, com especialistas em regressão logística multinomial. Um artigo propôs uma mistura de softmaxes para modelagem de linguagem autorregressiva. Especificamente, considere um modelo de linguagem que, dado um texto anterior

c

{\displaystyle c}

, prevê a próxima palavra

x

{\displaystyle x}

. A rede codifica o texto em um vetor

v

c

{\displaystyle v_{c}}

, e prevê a distribuição de probabilidade da próxima palavra como

S o f t m a x

(

v

c

W )

{\displaystyle \mathrm {Softmax} (v_{c}W)}

para uma matriz de incorporação (embedding)

W

{\displaystyle W}

. Na mistura de softmaxes, o modelo produz múltiplos vetores

v

c , 1

, ... ,

v

c , n

{\displaystyle v_{c,1},\dots ,v_{c,n}}

, e prevê a próxima palavra como

i = 1

n

p

i

S o f t m a x

(

v

c , i

W

i

)

{\displaystyle \sum _{i=1}^{n}p_{i}\;\mathrm {Softmax} (v_{c,i}W_{i})}

, onde

p

i

{\displaystyle p_{i}}

é uma distribuição de probabilidade por uma operação linear-softmax nas ativações dos neurônios ocultos dentro do modelo. O artigo original demonstrou sua eficácia para redes neurais recorrentes. Mais tarde, descobriu-se que isso também funciona para Transformers.

Aprendizado profundo A seção anterior descreveu o MoE como era usado antes da era do aprendizado profundo (deep learning). Depois do aprendizado profundo, o MoE encontrou aplicações na execução dos maiores modelos, como uma forma simples de realizar computação condicional: apenas partes do modelo são usadas, sendo as partes escolhidas de acordo com qual é a entrada. O artigo mais antigo que aplica MoE ao aprendizado profundo data de 2013, o qual propôs o uso de uma rede de roteamento diferente em cada camada de uma rede neural profunda. Especificamente, cada porta (gate) é uma rede linear-ReLU-linear-softmax, e cada especialista é uma rede linear-ReLU. Como a saída da porta não é esparsa, todas as saídas dos especialistas são necessárias e nenhuma computação condicional é realizada. O principal objetivo ao usar o MoE no aprendizado profundo é reduzir o custo computacional. Consequentemente, para cada consulta, apenas um pequeno subconjunto dos especialistas deve ser consultado. Isso torna o MoE no aprendizado profundo diferente do MoE clássico. No MoE clássico, a saída para cada consulta é uma soma ponderada das saídas de todos os especialistas. No MoE de aprendizado profundo, a saída para cada consulta pode envolver apenas as saídas de alguns especialistas. Consequentemente, a principal escolha de projeto no MoE torna-se o roteamento: dado um lote de consultas, como rotear as consultas para os melhores especialistas.

Camada MoE com portas esparsas A camada MoE com portas esparsas (Sparsely-gated MoE layer), publicada por pesquisadores do Google Brain, usa redes feedforward como especialistas e roteamento linear-softmax. Semelhante ao MoE rígido proposto anteriormente, eles alcançam a esparsidade por meio de uma soma ponderada apenas dos k-melhores (top-k) especialistas, em vez da soma ponderada de todos eles. Especificamente, em uma camada MoE, existem redes feedforward

f

1

, . . . ,

f

n

{\displaystyle f_{1},...,f_{n}}

e uma rede de roteamento

w

{\displaystyle w}

. A rede de roteamento é definida por

w ( x ) =

s o f t m a x

(

t o p

k

( W x +

ruído

) )

{\displaystyle w(x)=\mathrm {softmax} (\mathrm {top} _{k}(Wx+{\text{ruído}}))}

, onde

t o p

k

{\displaystyle \mathrm {top} _{k}}

é uma função que mantém as k-melhores entradas de um vetor iguais, mas define todas as outras entradas como

− ∞

{\displaystyle -\infty }

. A adição de ruído ajuda no balanceamento de carga. A escolha de

k

{\displaystyle k}

é um hiperparâmetro selecionado de acordo com a aplicação. Valores típicos são

k = 1 , 2

{\displaystyle k=1,2}

. A versão com

k = 1

{\displaystyle k=1}

também é chamada de Switch Transformer. O Switch Transformer original foi aplicado a um modelo de linguagem T5. Como demonstração, eles treinaram uma série de modelos para tradução automática com camadas alternadas de MoE e LSTM, e os compararam com modelos LSTM profundos. A Tabela 3 mostra que os modelos MoE usaram menos computação no tempo de inferência, apesar de terem 30 vezes mais parâmetros. Este módulo arquitetônico foi publicado em janeiro de 2017, alguns meses antes da publicação da arquitetura Transformer (12 de junho de 2017), e eles foram combinados em uma arquitetura multimodal chamada MultiModel publicada 4 dias depois (16 de junho de 2017).

Balanceamento de carga MoEs originais (vanilla) tendem a ter problemas de balanceamento de carga: alguns especialistas são consultados frequentemente, enquanto outros são raramente ou nunca consultados. Para encorajar a porta a selecionar cada especialista com igual frequência (balanceamento de carga adequado) dentro de cada lote, cada camada MoE tem duas funções de perda auxiliares. Isso é melhorado pelo Switch Transformer em uma única função de perda auxiliar. Especificamente, seja

n

{\displaystyle n}

o número de especialistas, então para um dado lote de consultas

{

x

1

,

x

2

, . . . ,

x

T

}

{\displaystyle \{x_{1},x_{2},...,x_{T}\}}

, a perda auxiliar para o lote é

n

i = 1

n

f

i

P

i

{\displaystyle n\sum _{i=1}^{n}f_{i}P_{i}}

Aqui,

f

i

=

1 T

# (

consultas enviadas ao especialista

i )

{\displaystyle f_{i}={\frac {1}{T}}\#({\text{consultas enviadas ao especialista }}i)}

é a fração de tokens que escolheram o especialista

i

{\displaystyle i}

, e

P

i

=

1 T

j = 1

T

w

i

(

x

j

)

i ′

especialistas

w

i ′

(

x

j

)

{\displaystyle P_{i}={\frac {1}{T}}\sum _{j=1}^{T}{\frac {w_{i}(x_{j})}{\sum _{i'\in {\text{especialistas}}}w_{i'}(x_{j})}}}

é a fração do peso sobre o especialista

i

{\displaystyle i}

. Essa perda é minimizada em

1

{\displaystyle 1}

, precisamente quando cada especialista tem peso igual a

1

/

n

{\displaystyle 1/n}

em todas as situações.Pesquisadores da DeepSeek projetaram uma variante de MoE, com "especialistas compartilhados" que sempre são consultados, e "especialistas roteados" que podem não ser. Eles descobriram que o balanceamento de carga padrão encoraja os especialistas a serem igualmente consultados, mas isso faz com que os especialistas repliquem a mesma capacidade central, como a gramática do inglês. Eles propuseram que os especialistas compartilhados aprendam capacidades centrais que são usadas frequentemente, e deixem os especialistas roteados aprenderem as capacidades periféricas que são usadas raramente. Eles também propuseram a "estratégia de balanceamento de carga livre de perda auxiliar", que não usa perda auxiliar. Em vez disso, cada especialista

i

{\displaystyle i}

tem um "viés de especialista" extra

b

i

{\displaystyle b_{i}}

. Se um especialista estiver sendo negligenciado, então o seu viés aumenta, e vice-versa. Durante a atribuição de tokens, cada token escolhe os k-melhores especialistas, mas com o viés adicionado. Ou seja:

f ( x ) =

i

está no top-k de

{ w ( x

)

j

+

b

j

}

j

w ( x

)

i

f

i

( x )

{\displaystyle f(x)=\sum _{i{\text{ está no top-k de }}\{w(x)_{j}+b_{j}\}_{j}}w(x)_{i}f_{i}(x)}

Observe que o viés do especialista é importante para a escolha dos especialistas, mas não na soma das respostas dos especialistas.

Fator de capacidade Suponha que existam

n

{\displaystyle n}

especialistas em uma camada. Para um dado lote de consultas

{

x

1

,

x

2

, . . . ,

x

T

}

{\displaystyle \{x_{1},x_{2},...,x_{T}\}}

, cada consulta é roteada para um ou mais especialistas. Por exemplo, se cada consulta for roteada para um especialista como no Switch Transformers, e se os especialistas tiverem balanceamento de carga, então cada especialista deve esperar em média

T

/

n

{\displaystyle T/n}

consultas em um lote. Na prática, os especialistas não podem esperar um balanceamento de carga perfeito: em alguns lotes, um especialista pode estar subutilizado, enquanto em outros lotes, ele estaria sobrecarregado. Como as entradas não podem se mover pela camada até que todos os especialistas na camada tenham concluído as consultas atribuídas, o balanceamento de carga é importante. O fator de capacidade é às vezes usado para impor uma restrição rígida no balanceamento de carga. Cada especialista tem permissão para processar apenas até

c ⋅ T

/

n

{\displaystyle c\cdot T/n}

consultas em um lote. O relatório do ST-MoE descobriu que

c ∈ [ 1.25 , 2 ]

{\displaystyle c\in [1.25,2]}

funciona bem na prática.

Roteamento No MoE com portas esparsas original, apenas os k-melhores especialistas são consultados, e suas saídas são somadas e ponderadas. Existem outros métodos. De maneira geral, o roteamento é um problema de atribuição: como atribuir tokens aos especialistas, de modo que uma variedade de restrições seja seguida (como taxa de transferência, balanceamento de carga, etc.)? Existem tipicamente três classes de algoritmos de roteamento: os especialistas escolhem os tokens ("escolha pelo especialista" ou expert choice), os tokens escolhem os especialistas (o MoE esparso original), e um atribuidor global combinando especialistas e tokens. Durante a inferência, o MoE trabalha com um grande lote de tokens a qualquer momento. Se os tokens escolhessem os especialistas, alguns especialistas poderiam receber poucos tokens, enquanto alguns poucos especialistas receberiam tantos tokens que isso excederia o tamanho máximo do lote deles, de forma que eles teriam que ignorar alguns dos tokens. Da mesma forma, se os especialistas escolhessem os tokens, alguns tokens poderiam não ser escolhidos por nenhum especialista. Este é o problema do "descarte de token" (token drop). Descartar um token não é necessariamente um problema sério, pois nos Transformers, devido às conexões residuais, se um token for "descartado", ele não desaparece. Em vez disso, sua representação vetorial simplesmente passa pela camada feedforward sem alteração. Outras abordagens incluem resolver isso como um problema de programação linear com restrições, usando aprendizado por reforço para treinar o algoritmo de roteamento (já que escolher um especialista é uma ação discreta, como em RL). A correspondência token-especialista não pode envolver aprendizado ("roteamento estático"): Pode ser feita por uma função de hash determinística ou por um gerador de números aleatórios.

Aplicações em modelos transformer As camadas MoE são usadas nos maiores modelos transformer, para os quais o aprendizado e a inferência sobre o modelo completo são muito custosos. Elas são tipicamente de roteamento esparso, com esparsidade 1 ou 2. Em modelos Transformer, as camadas MoE são frequentemente usadas para selecionar as camadas feedforward (tipicamente uma rede linear-ReLU-linear), aparecendo em cada bloco Transformer após a atenção multi-cabeças (multiheaded attention). Isso ocorre porque as camadas feedforward ocupam uma porção crescente do custo computacional à medida que os modelos se tornam maiores. Por exemplo, no modelo Palm-540B, 90% dos parâmetros estão em suas camadas feedforward. Um Transformer treinado pode ser convertido para um MoE duplicando suas camadas feedforward, com inicialização aleatória do roteamento, e depois sendo treinado ainda mais. Esta é uma técnica chamada "reciclagem esparsa" (sparse upcycling). Há um grande número de escolhas de projeto envolvidas no MoE de Transformer que afetam a estabilidade do treinamento e o desempenho final. O relatório do OLMoE descreve estas escolhas com algum detalhe. Desde 2023, os modelos grandes o suficiente para usar o MoE tendem a ser os grandes modelos de linguagem (LLMs), onde cada especialista tem na ordem de 10 bilhões de parâmetros. Além de modelos de linguagem, o Vision MoE é um modelo Transformer com camadas MoE. Eles o demonstraram treinando um modelo com 15 bilhões de parâmetros. O MoE Transformer também tem sido aplicado para modelos de difusão. Uma série de grandes modelos de linguagem do Google usou MoE. O GShard usa MoE com até os 2 melhores especialistas por camada. Especificamente, o especialista top-1 é sempre selecionado, e o especialista top-2 é selecionado com probabilidade proporcional ao peso desse especialista de acordo com a função de roteamento. Posteriormente, o GLaM demonstrou um modelo de linguagem com 1,2 trilhões de parâmetros, cada camada MoE usando os top-2 entre 64 especialistas. Os Switch Transformers usam top-1 em todas as camadas MoE. O NLLB-200, pela Meta AI, é um modelo de tradução automática para 200 idiomas. Cada camada MoE usa um MoE hierárquico com dois níveis. No primeiro nível, a função de porta escolhe usar uma camada feedforward "compartilhada" ou usar os especialistas. Se estiver usando os especialistas, outra função de porta computa os pesos e escolhe os top-2 especialistas. Os grandes modelos de linguagem MoE podem ser adaptados para tarefas a jusante (downstream) por meio de ajuste de instruções (instruction tuning). Em dezembro de 2023, a Mistral AI lançou o Mixtral 8x7B sob licença Apache 2.0. É um modelo de linguagem MoE com 46,7B de parâmetros, 8 especialistas e esparsidade 2. Eles também lançaram uma versão com ajuste fino para seguir instruções. Em março de 2024, a Databricks lançou o DBRX. É um modelo de linguagem MoE com 132B de parâmetros, 16 especialistas e esparsidade 4. Eles também lançaram uma versão com ajuste fino para seguir instruções.

Veja também Produto de especialistas (Product of experts) Modelo de mistura Modelo de raciocínio Aprendizado de ensemble

Referências

Leitura adicional Antes da era do aprendizado profundo McLachlan, Geoffrey J.; Peel, David (2000). Finite mixture models. Col: Wiley series in probability and statistics applied probability and statistics section. New York Chichester Weinheim Brisbane Singapore Toronto: John Wiley & Sons, Inc. ISBN 978-0-471-00626-8 Yuksel, S. E.; Wilson, J. N.; Gader, P. D. (agosto de 2012). «Twenty Years of Mixture of Experts». IEEE Transactions on Neural Networks and Learning Systems. 23 (8): 1177–1193. Bibcode:2012ITNNL..23.1177Y. ISSN 2162-237X. PMID 24807516. doi:10.1109/TNNLS.2012.2200299 Masoudnia, Saeed; Ebrahimpour, Reza (12 de maio de 2012). «Mixture of experts: a literature survey». Artificial Intelligence Review. 42 (2): 275–293. doi:10.1007/s10462-012-9338-y Nguyen, Hien D.; Chamroukhi, Faicel (julho de 2018). «Practical and theoretical aspects of mixture-of-experts modeling: An overview». WIREs Data Mining and Knowledge Discovery (em inglês). 8 (4). ISSN 1942-4787. doi:10.1002/widm.1246 Técnicas práticas para treinar modelos Transformer MoE Zoph, Barret; Bello, Irwan; Kumar, Sameer; Du, Nan; Huang, Yanping; Dean, Jeff; Shazeer, Noam; Fedus, William (2022). «ST-MoE: Designing Stable and Transferable Sparse Expert Models». arXiv:2202.08906 [cs.CL] Muennighoff, Niklas; Soldaini, Luca; Groeneveld, Dirk; Lo, Kyle; Morrison, Jacob; Min, Sewon; Shi, Weijia; Walsh, Pete; Tafjord, Oyvind; Lambert, Nathan; Gu, Yuling; Arora, Shane; Bhagia, Akshita; Schwenk, Dustin; Wadden, David; Wettig, Alexander; Hui, Binyuan; Dettmers, Tim; Kiela, Douwe; Farhadi, Ali; Smith, Noah A.; Pang Wei Koh; Singh, Amanpreet; Hajishirzi, Hannaneh (2024). «OLMoE: Open Mixture-of-Experts Language Models». arXiv:2409.02060 [cs.CL] , com lançamento de dados associado em «allenai/OLMoE». Ai2. 17 de outubro de 2024. Consultado em 18 de outubro de 2024 Rajbhandari, Samyam; Li, Conglong; Yao, Zhewei; Zhang, Minjia; Reza Yazdani Aminabadi; Ammar Ahmad Awan; Rasley, Jeff; He, Yuxiong (2022). «DeepSpeed-MoE: Advancing Mixture-of-Experts Inference and Training to Power Next-Generation AI Scale». arXiv:2201.05596 [cs.LG] DeepSeek-AI; et al. (2024). «DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model». arXiv:2405.04434 [cs.CL] DeepSeek-AI; et al. (2024). «DeepSeek-V3 Technical Report». arXiv:2412.19437 [cs.CL] Jin, Chao; Jiang, Ziheng; Bai, Zhihao; Zhong, Zheng; Liu, Juncai; Li, Xiang; Zheng, Ningxin; Wang, Xi; Xie, Cong; Huang, Qi; Heng, Wen; Ma, Yiyuan; Bao, Wenlei; Zheng, Size; Peng, Yanghua; Lin, Haibin; Liu, Xuanzhe; Jin, Xin; Liu, Xin (2025). «MegaScale-MoE: Large-Scale Communication-Efficient Training of Mixture-of-Experts Models in Production». arXiv:2505.11432 [cs.LG] Revisão de literatura para a era do aprendizado profundo Fedus, William; Dean, Jeff; Zoph, Barret (2022). «A Review of Sparse Expert Models in Deep Learning». arXiv:2209.01667 [cs.LG] Fuzhao, Xue (21 de julho de 2024). «XueFuzhao/awesome-mixture-of-experts». GitHub. Consultado em 21 de julho de 2024 Vats, Arpita (2 de setembro de 2024). «arpita8/Awesome-Mixture-of-Experts-Papers». GitHub. Consultado em 6 de setembro de 2024 Cai, Weilin; Jiang, Juyong; Wang, Fan; Tang, Jing; Kim, Sunghun; Huang, Jiayi (2025). «A Survey on Mixture of Experts in Large Language Models». IEEE Transactions on Knowledge and Data Engineering. 37 (7): 3896. Bibcode:2025IDSO...37.3896C. arXiv:2407.06204. doi:10.1109/TKDE.2025.3554028