Mixture of Experts
forkortelse for MoE
En arkitektur hvor flere specialiserede netværk (eksperter) kombineres med en gate-mekanisme, så kun et subset aktiveres per input.
Kort fortalt
Deler modellen op i specialiserede dele, så den er effektiv og alligevel stor.
- Kategori
- arkitektur
- Niveau
- øvet
- Udtale
- /ˈmɪkstʃər əv ˈɛkspɜrts/
Betydninger
1- 1
En neurale netværksarkitektur med flere ekspertnetværk og en gate, der vælger hvilke eksperter der skal bruges for et givet input.
- Mixture of Experts (MoE) muliggør træning af modeller med billioner af parametre ved kun at aktivere en brøkdel per forward pass. — Shazeer et al., 2017
Hvornår bruges det
Bruges til at skalere transformer-modeller med færre parametre aktive per token, fx i NLP-modeller som GPT-4 og Mixtral.
Formel
G(x) = softmax(W_g · x); output = ∑_i G_i(x) · E_i(x)Kodeeksempel
import torch
import torch.nn as nn
class MoELayer(nn.Module):
def __init__(self, input_dim, num_experts, hidden_dim):
super().__init__()
self.gate = nn.Linear(input_dim, num_experts)
self.experts = nn.ModuleList([
nn.Sequential(
nn.Linear(input_dim, hidden_dim),
nn.ReLU(),
nn.Linear(hidden_dim, input_dim)
) for _ in range(num_experts)
])
def forward(self, x):
gate_scores = torch.softmax(self.gate(x), dim=-1)
expert_outputs = torch.stack([e(x) for e in self.experts], dim=-2)
weighted = gate_scores.unsqueeze(-1) * expert_outputs
return weighted.sum(dim=-2)Simpel MoE-lag med fire eksperter og gate. Hvert token aktiverer alle eksperter vægtet af gate-scoren.
Oprindelse
Fra statistisk 'mixture model' og neurale 'expert networks'; populariseret af Shazeer et al. (2017).