Aller au contenu principal

Chapitre 1 : Mélange d'experts (MoE)

Le concept de MoE​

Au lieu d'un grand FFN, utilisez plusieurs FFN "experts" avec un routeur :

Entrée → Routeur → Sélection des top-k experts → Combinaison pondérée → Sortie

Architecture Mixtral​

mixtral_config = {
"num_experts": 8,
"num_experts_per_token": 2, # Sparse: seulement 2 actifs
"total_params": "46.7B",
"active_params": "12.9B", # Par passage avant
}

Mécanisme de routage​

def router(hidden_states, num_experts, top_k=2):
# Calculer les scores des experts
scores = router_weights @ hidden_states

# Sélectionner les top-k experts
top_k_scores, top_k_indices = torch.topk(scores, top_k)

# Normaliser les poids
weights = F.softmax(top_k_scores, dim=-1)

return weights, top_k_indices

Avantages​

AspectDenseMoE
ParamètresTous actifsSous-ensemble actif
CalculO(params)O(active_params)
CapacitéFixePlus élevée pour le même calcul

Défis​

  • Équilibrage de charge entre les experts
  • Surcharge de communication dans un environnement distribué
  • Effondrement des experts (tout le routage vers quelques experts)