Découvrez l'architecture Mixture of Experts (MoE). Apprenez comment les réseaux de gating et les couches clairsemées adaptent les réseaux neuronaux pour une IA et une vision par ordinateur hautement performantes.
Le mélange d'experts (MoE) est une conception architecturale spécialisée dans l'apprentissage profond qui permet aux modèles d'évoluer vers des tailles massives sans augmentation proportionnelle du coût de calcul. Contrairement à un réseau neuronal dense standard (NN), où chaque paramètre est actif pour chaque entrée, un modèle MoE utilise une technique appelée calcul conditionnel. Cette approche active dynamiquement seulement un petit sous-ensemble des composants du réseau, appelés « experts », en fonction des caractéristiques spécifiques des données d'entrée. Ce faisant, les architectures MoE permettent la création de puissants modèles de base pouvant posséder des trillions de paramètres tout en conservant la latence d'inférence et la vitesse opérationnelle de systèmes beaucoup plus petits.
L'efficacité d'un modèle Mixture of Experts (MoE) découle du remplacement des couches denses standard par une couche MoE clairsemée. Cette couche se compose généralement de deux éléments principaux qui fonctionnent en tandem pour traiter efficacement les informations :
Bien que les deux concepts impliquent l'utilisation de plusieurs sous-modèles, il est essentiel de distinguer un mélange d'experts d'un ensemble de modèles. Dans un ensemble traditionnel, chaque modèle du groupe traite la même entrée, et leurs résultats sont moyennés ou soumis à un vote afin de maximiser la précision. Cette approche augmente le coût de calcul de manière linéaire avec le nombre de modèles.
À l'inverse, un MoE est un modèle unique et unifié dans lequel différentes entrées empruntent différents chemins. Un MoE clairsemé vise la scalabilité et l'efficacité en n'exécutant qu'une fraction des paramètres totaux pour une étape d'inférence donnée. Cela permet de s'entraîner sur de grandes quantités de données d'entraînement sans les coûts prohibitifs associés aux ensembles denses.
L'architecture MoE est devenue une pierre angulaire de l'IA moderne haute performance, en particulier dans les scénarios nécessitant des capacités multitâches et une large rétention des connaissances.
Pour comprendre comment le réseau de gating sélectionne les experts, considérez cet exemple simplifié PyTorch . Il illustre un mécanisme de routage qui sélectionne l'expert le plus pertinent pour une entrée donnée.
import torch
import torch.nn as nn
# A simple router deciding between 4 experts for input dimension of 10
num_experts = 4
input_dim = 10
router = nn.Linear(input_dim, num_experts)
# Batch of 2 inputs
input_data = torch.randn(2, input_dim)
# Calculate scores and select the top-1 expert for each input
logits = router(input_data)
probs = torch.softmax(logits, dim=-1)
weights, indices = torch.topk(probs, k=1, dim=-1)
print(f"Selected Expert Indices: {indices.flatten().tolist()}")
Malgré leurs avantages, les modèles MoE posent des défis particuliers au processus de formation. L'un des principaux problèmes est l' équilibrage de la charge; le routeur peut favoriser quelques experts « populaires » tout en ignorant les autres, ce qui entraîne un gaspillage de capacité. Pour atténuer ce problème, les chercheurs utilisent des fonctions de perte auxiliaires afin d'encourager une utilisation égale de tous les experts.
De plus, le déploiement de ces modèles volumineux nécessite des configurations matérielles sophistiquées. Étant donné que le nombre total de paramètres est élevé (même si les paramètres actifs sont faibles), le modèle nécessite souvent une mémoire VRAM importante, ce qui nécessite un entraînement distribué sur plusieurs GPU. Des frameworks tels que Microsoft aident à gérer le parallélisme nécessaire pour former efficacement ces systèmes. Pour gérer les ensembles de données et les workflows de formation pour des architectures aussi complexes , des outils tels que la Ultralytics fournissent une infrastructure essentielle pour la journalisation, la visualisation et le déploiement.