Formation sur le dimensionnement - 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.

Formation sur le dimensionnement

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 :

  • Passer d'une solution unique GPU à plusieurs GPUs

  • Mise à l'échelle d'une seule instance à plusieurs instances

  • Utilisation de scripts de formation personnalisés

Passer d'une solution unique 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 plusieursGPUs, comme une instance p3.16xlarge qui en a huitGPUs, les données et le traitement sont répartis sur les huitGPUs. 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 un peu plus d'un huitième du temps que cela aurait pris p3.2xlarge avec unGPU.

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 simple 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 pouvez obtenir de meilleures performances et réduire les coûts 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 avec SDK estimator la fonction SageMaker Python 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 sur une seule instance et en augmentant jusqu'à 64 instances pour un total de 256GPUs.

Chart showing how throughput increases and time to train decreases with more GPUs.

Scripts d'entraînement personnalisés

Tout en SageMaker simplifiant le déploiement et la mise à l'échelle du nombre d'instancesGPUs, 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 prend également en charge Horovod et les implémentations 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 SageMaker le guide des conteneurs pour les Deep Learning Containers, ainsi que divers exemples de blocs-notes illustrant les implémentations.