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.
Sur cette page, vous allez apprendre à utiliser la bibliothèque de parallélisme de SageMaker modèles v2 APIs et à commencer à exécuter une tâche de formation FSDP ( PyTorch Fully Sharded Data Parallel) sur la plateforme de formation ou sur un SageMaker cluster. SageMaker HyperPod
Il existe différents scénarios pour exécuter une tâche de PyTorch formation avec SMP v2.
-
Pour la SageMaker formation, utilisez l'un des conteneurs SageMaker Framework prédéfinis pour PyTorch v2.0.1 et versions ultérieures, qui sont préemballés avec SMP v2.
-
Utilisez le fichier binaire SMP v2 pour configurer un environnement Conda afin d'exécuter une charge de travail d'entraînement distribuée sur un SageMaker HyperPod cluster.
-
Étendez les conteneurs SageMaker Framework prédéfinis pour PyTorch les versions 2.0.1 et ultérieures afin d'installer toute exigence fonctionnelle supplémentaire adaptée à votre cas d'utilisation. Pour savoir comment étendre un conteneur préfabriqué, voirExtension d'un conteneur préconçu.
-
Vous pouvez également apporter votre propre conteneur Docker et configurer manuellement tous les environnements de SageMaker formation à l'aide de la boîte à outils de SageMaker formation
et installer le fichier binaire SMP v2. Il s'agit de l'option la moins recommandée en raison de la complexité des dépendances. Pour savoir comment exécuter votre propre conteneur Docker, consultez Adapter votre propre conteneur de formation.
Ce guide de démarrage couvre les deux premiers scénarios.
Rubriques
Étape 1 : Adaptez votre script d' PyTorch entraînement FSDP
Pour activer et configurer la bibliothèque SMP v2, commencez par importer et ajouter le torch.sagemaker.init()
module en haut du script. Ce module prend en compte le dictionnaire de configuration SMP Paramètres de configuration des fonctionnalités principales du SMP v2 que vous allez préparer. Étape 2 : Lancer une offre de formation De plus, pour utiliser les différentes fonctionnalités de base proposées par SMP v2, vous devrez peut-être apporter quelques modifications supplémentaires pour adapter votre script d'entraînement. Des instructions plus détaillées sur l'adaptation de votre script d'entraînement à l'utilisation des fonctionnalités de base de SMP v2 sont fournies à l'Principales fonctionnalités de la bibliothèque de parallélisme de SageMaker modèles v2adresse.
Dans votre script d'entraînement, ajoutez les deux lignes de code suivantes, qui constituent le minimum requis pour commencer à vous entraîner avec SMP v2. DansÉtape 2 : Lancer une offre de formation, vous allez configurer un objet de la classe d' SageMaker PyTorch
estimateur avec un dictionnaire de configuration SMP via l'distribution
argument de la classe d'estimateur.
import torch.sagemaker as tsm
tsm.init()
Note
Vous pouvez également transmettre directement un dictionnaire de configuration du Paramètres de configuration des fonctionnalités principales du SMP v2 au torch.sagemaker.init()
module. Cependant, les paramètres transmis à l' PyTorch estimateur sont prioritaires et remplacent ceux spécifiés dans Étape 2 : Lancer une offre de formation le module. torch.sagemaker.init()
Étape 2 : Lancer une offre de formation
Découvrez comment configurer les options de distribution SMP pour lancer une tâche de formation PyTorch FSDP avec les fonctionnalités principales du SMP.
Lorsque vous configurez un objet lanceur de tâches d'entraînement de la classe PyTorch framework estimatordistribution
un argument comme suit.
Note
La distribution
configuration de SMP v2 est intégrée dans le SDK SageMaker Python à partir de la version 2.200. Assurez-vous d'utiliser le SDK SageMaker Python v2.200 ou version ultérieure.
Note
Dans SMP v2, vous devez configurer smdistributed
avec torch_distributed
pour l'distribution
argument de l' SageMaker PyTorch
estimateur. Avectorch_distributed
, SageMaker AI s'exécutetorchrun
, qui est le lanceur de tâches multi-nœuds par défaut de PyTorch Distributed.
from sagemaker.pytorch import PyTorch
estimator = PyTorch(
framework_version=2.2.0
,
py_version="310
"
# image_uri="<smp-docker-image-uri>" # For using prior versions, specify the SMP image URI directly.
entry_point="your-training-script.py
", # Pass the training script you adapted with SMP from Step 1.
... # Configure other required and optional parameters
distribution={
"torch_distributed": { "enabled": True },
"smdistributed": {
"modelparallel": {
"enabled": True,
"parameters": {
"hybrid_shard_degree": Integer
,
"sm_activation_offloading": Boolean
,
"activation_loading_horizon": Integer
,
"fsdp_cache_flush_warnings": Boolean
,
"allow_empty_shards": Boolean
,
"tensor_parallel_degree": Integer
,
"expert_parallel_degree": Integer
,
"random_seed": Integer
}
}
}
}
)
Important
Pour utiliser l'une des versions précédentes de PyTorch ou SMP au lieu de la dernière, vous devez spécifier l'image Docker SMP directement en utilisant l'image_uri
argument au lieu de la framework_version
paire et. py_version
Voici un exemple de
estimator = PyTorch(
...,
image_uri="658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.2.0-gpu-py310-cu121"
)
Pour trouver une image SMP Docker URIs, consultez. Frameworks pris en charge