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