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.
Les sections suivantes décrivent les scénarios dans lesquels vous souhaiterez peut-être étendre la formation, ainsi que la manière dont vous pouvez le faire en utilisant AWS les ressources. Vous souhaiterez peut-être étendre l'entraînement dans l'une des situations suivantes :
-
Passage d'un seul GPU à plusieurs GPUs
-
Mise à l'échelle d'une seule instance à plusieurs instances
-
Utilisation de scripts de formation personnalisés
Passage d'un seul GPU à plusieurs GPUs
La quantité de données ou la taille du modèle utilisé en machine learning peut créer des situations où le temps d'entraînement d'un modèle est supérieur au temps dont vous disposez. Parfois, le format du modèle ou le volume des données rend l'entraînement impossible. L'une des solutions consiste à augmenter le nombre GPUs que vous utilisez pour la formation. Sur une instance comportant plusieurs GPUs, comme une instance p3.16xlarge
qui en a huit GPUs, les données et le traitement sont répartis sur les huit GPUs. L'utilisation de bibliothèques d'entraînement distribué peut accélérer de façon quasi linéaire le temps nécessaire à l'entraînement de votre modèle. Cela prend légèrement plus de 1/8 du temps qu'il aurait fallu sur une instance p3.2xlarge
avec un seul GPU.
Type d’instance | GPUs |
---|---|
p3.2xlarge | 1 |
p3.8xlarge | 4 |
p3.16xlarge | 8 |
p3dn.24xlarge | 8 |
Note
Les types d'instances ml utilisés par l' SageMaker entraînement ont le même nombre GPUs de types d'instances p3 correspondants. Par exemple, ml.p3.8xlarge
a le même nombre GPUs que p3.8xlarge
- 4.
Mise à l'échelle d'une seule instance à plusieurs instances
Pour augmenter la mise à l'échelle de votre entraînement, vous pouvez utiliser plus d'instances. Vous devrez toutefois choisir un type d'instance plus grand avant d'ajouter d'autres instances. Consultez le tableau précédent pour savoir combien il GPUs y en a dans chaque type d'instance p3.
Si vous êtes passé d'un seul GPU sur un p3.2xlarge
à quatre GPUs sur unp3.8xlarge
, mais que vous décidez que vous avez besoin de plus de puissance de traitement, vous constaterez peut-être de meilleures performances et des coûts moins élevés si vous en choisissez un p3.16xlarge
avant d'essayer d'augmenter le nombre d'instances. Selon les bibliothèques que vous utilisez, en continuant votre entraînement sur une seule instance, vous améliorez les performances et réduisez les coûts par rapport à un scénario à plusieurs instances.
Lorsque vous êtes prêt à augmenter le nombre d'instances, vous pouvez le faire à l'aide de la estimator
fonction SageMaker AI Python SDK en définissant votreinstance_count
. Vous pouvez, par exemple, définir instance_type = p3.16xlarge
et instance_count =
2
. Au lieu de huit GPUs sur un seulp3.16xlarge
, vous en avez 16 GPUs sur deux instances identiques. Le graphique suivant montre le dimensionnement et le débit, en commençant par huit GPUs
Scripts d'entraînement personnalisés
Bien que l' SageMaker IA facilite le déploiement et la mise à l'échelle du nombre d'instances GPUs, la gestion des données et des résultats peut s'avérer très difficile, selon le framework de votre choix. C'est pourquoi des bibliothèques de support externes sont souvent utilisées. Cette forme la plus élémentaire de formation distribuée nécessite la modification de votre script d'entraînement pour gérer la distribution des données.
SageMaker L'IA prend également en charge Horovod et la mise en œuvre de formations distribuées natives à chaque framework d'apprentissage profond majeur. Si vous choisissez d'utiliser des exemples issus de ces frameworks, vous pouvez suivre le guide des conteneurs de l' SageMaker IA pour les Deep Learning Containers, ainsi que divers exemples de blocs-notes