Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Parallélisme expert
Le modèle A Mixture of Experts (MoE) est un type de modèle de transformateur qui utilise une approche clairsemée, ce qui simplifie la formation par rapport à la formation de modèles denses traditionnels. Dans cette architecture de réseau neuronal MoE, seul un sous-ensemble des composants du modèle appelé experts est utilisé pour chaque entrée. Cette approche présente plusieurs avantages, notamment une formation plus efficace et une inférence plus rapide, même avec un modèle de plus grande taille. En d'autres termes, avec le même budget de calcul pour l'entraînement d'un modèle dense complet, vous pouvez adapter un modèle ou un ensemble de données plus grand lorsque vous utilisez MoE.
Un modèle MoE est composé de plusieurs experts, chacun étant constitué d'un réseau neuronal, généralement un réseau prospectif ()FFN. Un réseau de porte appelé routeur détermine quels jetons sont envoyés à quel expert. Ces experts sont spécialisés dans le traitement d'aspects spécifiques des données d'entrée, ce qui permet au modèle de s'entraîner plus rapidement, de réduire les coûts de calcul, tout en obtenant la même qualité de performance que le modèle dense équivalent. Pour en savoir plus sur Mixture of Experts en général, consultez le blog Applying Mixture of Experts in LLM Architectures
Le parallélisme expert est un type de parallélisme qui permet de répartir les experts d'un modèle MoE sur plusieurs appareils. GPU
SMPLa v2 s'intègre à NVIDIAMegatron
Modèles Hugging Face Transformer compatibles SMP avec le parallélisme expert
SMPLa v2 offre actuellement une prise en charge experte du parallélisme pour les modèles de transformateurs Hugging Face suivants.
Configuration du parallélisme expert
En expert_parallel_degree
effet, vous sélectionnez une valeur pour le degré de parallélisme expert. La valeur doit diviser de manière égale le nombre de GPUs dans votre cluster. Par exemple, pour partager votre modèle lorsque vous utilisez une instance avec 8GPUs, choisissez 2, 4 ou 8. Nous vous recommandons de commencer par un petit nombre, puis de l'augmenter progressivement jusqu'à ce que le modèle soit intégré à la GPU mémoire.
Les extraits de code suivants montrent comment ajouter le module d'SMPinitialisation torch.sagemaker.init()
à votre script de formation et configurer le dictionnaire de SMP configuration JSON au format pour le lanceur de tâches de formation tout en suivant le processus en deux étapes introduit dans. Utiliser la bibliothèque de parallélisme des SageMaker modèles v2 Il n'est pas nécessaire d'apporter des modifications à votre PyTorch modèle ou à votre PyTorch FSDPexpert_parallel_degree
, consultez SMPparamètres de configuration des fonctionnalités principales de la v2.
Note
Vous pouvez utiliser le parallélisme expert avec. Parallélisme de données fragmenté hybride Notez que le parallélisme expert n'est actuellement pas compatible avec le parallélisme tensoriel.
Note
Cette fonctionnalité de formation spécialisée sur le parallélisme est disponible dans la combinaison suivante de bibliothèques de SageMaker et de PyTorch bibliothèque :
-
SMPv2.3.0 et versions ultérieures
-
SageMaker Python SDK v2.214.4 et versions ultérieures
-
PyTorch v2.2.0 et versions ultérieures
Dans votre script d'entraînement
Dans le cadre de l'étape 1, initialisez votre script avec torch.sagemaker.init()
pour activer la SMP v2 et enveloppez votre modèle avec le torch.sagemaker.transformAPI, en ajoutant le config
paramètre au API pour activer MoE. L'extrait de code suivant montre comment activer le SMP MoE pour la classe de modèle générique en AutoModelForCausalLM
extrayant la configuration d'un modèle de transformateur MoE à l'aide de la from_config
méthode d'apprentissage à partir de zéro ou de la from_pretrained
méthode de réglage précis. Pour en savoir plus sur le SMP MoEConfig
cours, voirtorch.sagemaker.moe.moe_config.MoEConfig.
# Import the torch.sagemaker.transform API and initialize. import torch.sagemaker as tsm tsm.init() # Import transformers AutoModelForCausalLM class. from transformers import AutoModelForCausalLM # Import the SMP-implementation of MoE configuration class. from torch.sagemaker.moe.moe_config import MoEConfig # Define a transformer model with an MoE model configuration model = AutoModelForCausalLM.from_config(
MoEModelConfig
) # Wrap it by torch.sagemaker.transform with the SMP MoE configuration. model = tsm.transform( model, config=MoEConfig( smp_moe=True
, random_seed=12345
, moe_load_balancing="sinkhorn
", global_token_shuffle=False
, moe_all_to_all_dispatcher=True
, moe_aux_loss_coeff=0.001
, moe_z_loss_coeff=0.001
) )
SMPconfiguration
Dans le cadre de l'étape 2, ajoutez le paramètre suivant au dictionnaire de SMP configuration de l' SageMaker PyTorch estimateur.
{ ..., # other SMP config parameters "expert_parallel_degree":
8
}