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. 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).

Afledte ord

2

Kilder

2