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.
Commencez par une formation distribuée sur Amazon SageMaker AI
La page suivante fournit des informations sur les étapes nécessaires pour démarrer avec la formation distribuée dans Amazon SageMaker AI. Si vous connaissez déjà l'entraînement distribué, choisissez l'option, parmi les suivantes, qui correspond à votre stratégie ou votre framework préférés pour commencer. Si vous souhaitez en savoir plus sur l'entraînement distribué en général, consultez Concepts de formation distribués.
Les bibliothèques de formation distribuées basées sur l' SageMaker IA sont optimisées pour l'environnement de SageMaker formation, aident à adapter vos tâches de formation distribuées à l' SageMaker IA et améliorent la vitesse et le débit de formation. Les offrent des stratégies d'entraînement parallèle de données et de modèles. Ils combinent des technologies logicielles et matérielles pour améliorer les communications entre nœuds GPU et entre nœuds, et étendent les capacités de formation de l' SageMaker IA grâce à des options intégrées qui nécessitent des modifications de code minimales dans vos scripts d'entraînement.
Avant de commencer
SageMaker La formation prend en charge la formation distribuée sur une seule instance ainsi que sur plusieurs instances, afin que vous puissiez exécuter des formations de toutes tailles à grande échelle. Nous vous recommandons d'utiliser les classes d'estimateur du framework telles que PyTorchCreateTrainingJob
API dans le backend, trouve la région dans laquelle se déroule votre session en cours et extrait l'un des conteneurs d'apprentissage AWS profond prédéfinis, préemballés avec un certain nombre de bibliothèques, notamment des cadres d'apprentissage profond, des cadres de formation distribués et le pilote. EFA Si vous souhaitez monter un système de FSx fichiers sur les instances de formation, vous devez transmettre votre identifiant de VPC sous-réseau et de groupe de sécurité à l'estimateur. Avant d'exécuter votre tâche de formation distribuée dans le domaine de l' SageMaker IA, lisez les instructions générales suivantes sur la configuration de base de l'infrastructure.
Zones de disponibilité et fond de panier réseau
Lorsque vous utilisez plusieurs instances (également appelées nœuds), il est important de comprendre le réseau qui connecte les instances, comment elles lisent les données d'entraînement et comment elles partagent les informations entre elles. Par exemple, lorsque vous exécutez une tâche de formation parallèle aux données distribuée, un certain nombre de facteurs, tels que la communication entre les nœuds d'un cluster de calcul pour exécuter l'AllReduce
opération et le transfert de données entre les nœuds et le stockage des données dans Amazon Simple Storage Service ou Amazon FSx for Lustre, jouent un rôle crucial pour optimiser l'utilisation des ressources informatiques et accélérer la vitesse d'entraînement. Pour réduire les frais de communication, assurez-vous de configurer les instances, le VPC sous-réseau et le stockage des données dans la même Région AWS zone de disponibilité.
GPUinstances dotées d'un réseau plus rapide et d'un stockage à haut débit
Techniquement, vous pouvez utiliser n'importe quelle instance pour un entraînement distribué. Dans les cas où vous devez exécuter des tâches d'entraînement distribuées sur plusieurs nœuds pour entraîner de grands modèles, tels que les grands modèles de langage (LLMs) et les modèles de diffusion, qui nécessitent une commutation inter-nœuds plus rapide, nous recommandons des GPUinstances EFA compatibles prises en charge par
Utiliser la bibliothèque SageMaker AI Distributed Data Parallelism () SMDDP
La SMDDP bibliothèque améliore la communication entre les nœuds grâce à des implémentations AllReduce
et à des opérations de communication AllGather
collective optimisées pour l'infrastructure AWS réseau et la topologie des instances Amazon SageMaker AI ML. Vous pouvez utiliser la SMDDPbibliothèque en tant que backend de modules de formation distribués PyTorch basés sur des modules : PyTorch distributed data parallel (DDP)PyTorch
estimateur pour lancer une tâche de formation distribuée sur deux ml.p4d.24xlarge
instances.
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", # Activate distributed training with SMDDP distribution={ "pytorchddp": { "enabled": True } } # mpirun, activates SMDDP AllReduce OR AllGather # distribution={ "torch_distributed": { "enabled": True } } # torchrun, activates SMDDP AllGather # distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } # mpirun, activates SMDDP AllReduce OR AllGather )
Pour savoir comment préparer votre script de formation et lancer une tâche de formation parallèle aux données distribuée sur l' SageMaker IA, consultezOrganisez une formation distribuée avec la bibliothèque de parallélisme de données distribué basée sur l' SageMaker IA.
Utiliser la bibliothèque de parallélisme du modèle SageMaker AI () SMP
SageMaker L'IA fournit la SMP bibliothèque et prend en charge diverses techniques de formation distribuées, telles que le parallélisme des données fragmentées, le pipeline, le parallélisme des tenseurs, le partitionnement de l'état de l'optimiseur, etc. Pour en savoir plus sur les offres de la SMP bibliothèque, consultezPrincipales fonctionnalités de la bibliothèque de parallélisme des SageMaker modèles.
Pour utiliser la bibliothèque de parallélisme des modèles d' SageMaker IA, configurez le distribution
paramètre des estimateurs du framework d' SageMaker IA. Les estimateurs de cadre pris en charge sont PyTorchml.p4d.24xlarge
.
from sagemaker.
framework
importFramework
distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # enter parameter key-value pairs here } }, }, "mpi": { "enabled" : True, ... # enter parameter key-value pairs here } } estimator =Framework
( ..., instance_count=2
, instance_type="ml.p4d.24xlarge
", distribution=distribution )
Pour savoir comment adapter votre script d'entraînement, configurer les paramètres de distribution dans la estimator
classe et lancer une tâche de formation distribuée, consultez la bibliothèque de modèles de parallélisme de l'SageMaker IA (voir également Formation distribuée APIs
Utilisation des frameworks d'entraînement distribué open source
SageMaker L'IA prend également en charge les options suivantes pour fonctionner mpirun
et torchrun
dans le backend.
-
Pour utiliser PyTorch DistributedDataParallel (DDP)
dans l' SageMaker IA avec le mpirun
backend, ajoutez-ledistribution={"pytorchddp": {"enabled": True}}
à votre PyTorch estimateur. Pour plus d'informations, consultez également l'distribution
argument de PyTorch Distributed Traininget SageMaker AI PyTorch Estimator dans la documentation SageMaker Python SDK. Note
Cette option est disponible pour les versions PyTorch 1.12.0 et ultérieures.
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", distribution={"pytorchddp": {"enabled": True}} # runs mpirun in the backend ) -
SageMaker L'IA prend en charge le PyTorch
torchrun
lanceurpour la formation distribuée sur des EC2 instances Amazon GPU basées sur des instances Amazon, telles que P3 et P4, ainsi que sur Trn1 alimenté par l'appareil Trainium.AWS Pour utiliser PyTorch DistributedDataParallel (DDP)
dans l' SageMaker IA avec le torchrun
backend, ajoutez-ledistribution={"torch_distributed": {"enabled": True}}
à l' PyTorch estimateur.Note
Cette option est disponible pour les versions PyTorch 1.13.0 et ultérieures.
L'extrait de code suivant montre un exemple de création d'un PyTorch estimateur d' SageMaker IA pour exécuter un entraînement distribué sur deux
ml.p4d.24xlarge
instances avec l'option de distribution.torch_distributed
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", distribution={"torch_distributed": {"enabled": True}} # runs torchrun in the backend )Pour plus d'informations, consultez l'
distribution
argument de Distributed PyTorch Trainingand SageMaker AI PyTorch Estimator dans la documentation SageMaker Python SDK. Notes pour l'entrainement distribué sur Trn1
Une instance Trn1 comprend jusqu'à 16 appareils Trainium, et chaque appareil Trainium en comprend deux. NeuronCores
Pour les spécifications des appareils AWS Trainium, voir Architecture Trainium dans la documentation AWS Neuron. Pour vous entraîner sur les instances alimentées par Trainium, il vous suffit de spécifier le code d'instance Trn1
ml.trn1.*
, sous forme de chaîne à côté de l'instance_type
argument de la SageMaker classe d'estimateur AI. PyTorch Pour trouver les types d'instances Trn1 disponibles, consultez Architecture AWS Trn1dans la Documentation AWS Neuron (langue française non garantie). Note
SageMaker La formation sur les instances Amazon EC2 Trn1 est actuellement disponible uniquement pour le PyTorch framework AWS Deep Learning Containers for PyTorch Neuron à partir de la version 1.11.0. Pour obtenir la liste complète des versions prises en charge de PyTorch Neuron, consultez Neuron Containers
dans le référentiel AWS Deep Learning Containers GitHub . Lorsque vous lancez une tâche de formation sur des instances Trn1 à l'aide de SageMaker PythonSDK, l' SageMaker IA sélectionne et exécute automatiquement le bon conteneur à partir des Neuron Containers fournis par AWS Deep Learning Containers
. Les conteneurs Neuron sont préemballés avec les paramètres et les dépendances de l'environnement de formation pour faciliter l'adaptation de votre tâche de formation à la plateforme de SageMaker formation et aux instances Amazon EC2 Trn1. Note
Pour exécuter votre tâche de PyTorch formation sur des instances Trn1 avec SageMaker AI, vous devez modifier votre script d'entraînement pour initialiser les groupes de processus avec le
xla
backend et utiliser/. PyTorch XLAPour soutenir le processus XLA d'adoption, le AWS Neuron SDK fournit PyTorch Neuron qui permet de convertir XLA les PyTorch opérations en instructions Trainium. Pour savoir comment modifier votre script d'entraînement, consultez le guide du développeur pour l'entraînement avec PyTorch Neuron ( torch-neuronx
)dans la documentation de AWS Neuron. Pour plus d'informations, consultez la section Entraînement distribué avec PyTorch Neuron sur les instances Trn1
et l'SageMaker argument AI PyTorch Estimator distribution
dans la documentation Python. SageMaker SDK -
Pour l'utiliser MPI dans l' SageMaker IA, ajoutez-le
distribution={"mpi": {"enabled": True}}
à votre estimateur. L'option de MPI distribution est disponible pour les frameworks suivants : MXNet PyTorch, et TensorFlow. -
Pour utiliser un serveur de paramètres dans SageMaker AI, ajoutez-le
distribution={"parameter_server": {"enabled": True}}
à votre estimateur. L'option de serveur de paramètres est disponible pour les frameworks suivants :MXNet, PyTorch, et TensorFlow.Astuce
Pour plus d'informations sur l'utilisation des options du serveur de paramètres MPI et par framework, utilisez les liens suivants vers la SDKdocumentation SageMaker Python.