sparse MoE
forkortelse for sparse Mixture of Experts
En neural netværksarkitektur, der anvender en gate-mekanisme til at dirigere hvert input til et lille, sparsomt aktiveret subset af ekspertnetværk.
Kort fortalt
En arkitektur, hvor en stor model opdeles i flere 'eksperter', men kun et lille udvalg aktiveres for hver opgave, hvilket sparer tid og hukommelse.
- Kategori
- arkitektur
- Niveau
- øvet
Betydninger
1- 1
En neural netværksarkitektur bestående af mange ekspertnetværk og en gate-netværk, der for hvert input aktiverer et sparsomt subset af eksperterne. Dette reducerer beregningsomkostningerne mens modellens samlede kapacitet bevares.
- Sparse MoE-laget i Mixtral 8x7B aktiverer kun 2 af de 8 eksperter for hvert token, hvilket gør modellen både effektiv og kraftfuld. — Mixtral of Experts, 2024
- Under træning af en sparse MoE-model anvendes en load-balancing-loss for at forhindre, at gate-netværket overbelaster enkelte eksperter. — Outrageously Large Neural Networks, 2017
Hvornår bruges det
Sparse MoE bruges primært i store sprogmodeller for at øge kapaciteten uden at øge beregningsomkostningerne proportionelt. Det er særligt effektivt i modeller som Mixtral 8x7B, hvor hvert token kun behandles af 2 ud af 8 eksperter.
Kodeeksempel
import torch
def sparse_moe(x, gate, experts, top_k=2):
logits = gate(x) # (batch, num_experts)
weights, indices = torch.topk(torch.softmax(logits, dim=-1), k=top_k, dim=-1)
weights = weights / weights.sum(dim=-1, keepdim=True) # normalize
out = torch.zeros_like(x)
for i in range(top_k):
expert_out = experts[indices[:, i]](x)
out += weights[:, i:i+1] * expert_out
return outForenklet Python-implementering af sparse MoE. Input x sendes gennem gate-netværket, de øverste top_k eksperter vælges, og deres output vægtes sammen.
Oprindelse
Udtrykket kommer af 'sparse' (tyndt fordelt) og 'Mixture of Experts' (blanding af eksperter), en idé fra ensemble-læring. Det blev populært af Shazeer et al. (2017) i papiret 'Outrageously Large Neural Networks'.