Parallélisme expert - Amazon SageMaker

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 sur le site Web du NVIDIA développeur.

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 pour implémenter le parallélisme expert afin de prendre en charge la formation des modèles MoE, et fonctionne en plus de. PyTorch FSDP APIs Vous continuez à utiliser votre code d' PyTorch FSDPentraînement tel quel et vous activez le parallélisme SMP expert pour l'entraînement des modèles MoE.

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 FSDPconfiguration. Pour plus d'informations sur le paramètre expert_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 }