FAQ sur la bibliothèque de parallélisme des données SageMaker distribuées Amazon - 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.

FAQ sur la bibliothèque de parallélisme des données SageMaker distribuées Amazon

Utilisez ce qui suit pour trouver les réponses aux questions fréquemment posées sur la bibliothèque SMDDP.

Q : Lors de l'utilisation de la bibliothèque, comment les instances CPU prenant en charge allreduce sont-elles gérées ? Dois-je créer des clusters CPU-GPU hétérogènes, ou le SageMaker service crée-t-il des C5 supplémentaires pour les tâches utilisant la bibliothèque SMDDP ?

La bibliothèque SMDDP ne prend en charge que les instances GPU, plus précisément les instances P4d et P4de équipées de GPU NVIDIA A100 et EFA. Aucune instance C5 ou CPU supplémentaire n'est lancée ; si votre tâche d' SageMakerentraînement est effectuée sur un cluster P4d à 8 nœuds, seules 8 ml.p4d.24xlarge instances sont utilisées. Aucune instance supplémentaire n'est allouée.

Q : J'ai une tâche d'entraînement qui prend 5 jours sur une seule instance ml.p3.24xlarge avec un ensemble d'hyperparamètres H1 (taux d'apprentissage, taille de lot, optimiseur, etc.). La bibliothèque SageMaker de parallélisme des données d'Using et un cluster cinq fois plus grand sont-ils suffisants pour atteindre une accélération environ cinq fois plus rapide ? Ou dois-je revoir ses hyperparamètres d'apprentissage après avoir activé la bibliothèque SMDDP ?

La bibliothèque modifie la taille globale du lot. La nouvelle taille globale du lot est mise à l'échelle de façon linéaire avec le nombre d'instances d'entraînement utilisées. Il convient par conséquent de modifier des hyperparamètres, tels que le taux d'apprentissage, pour assurer la convergence.

Q : La bibliothèque SMDDP est-elle compatible avec Spot ?

Oui. Vous pouvez utiliser l'entraînement d'instances Spot gérées. Vous spécifiez le chemin d'accès au fichier de points de contrôle dans la tâche de SageMaker formation. Vous enregistrez et restaurez les points de contrôle dans leur script d'entraînement, comme indiqué dans les dernières étapes de Utiliser la bibliothèque SMDDP dans votre script d' TensorFlow entraînement (obsolète) et de Utilisez la bibliothèque SMDDP dans votre script d'entraînement PyTorch .

Q : La bibliothèque SMDDP est-elle pertinente dans une configuration à hôte unique et à plusieurs appareils ?

La bibliothèque peut être utilisée pour l'entraînement à un seul hôte et avec plusieurs appareils, mais elle n'offre des améliorations de performance que pour l'entraînement à plusieurs hôtes.

Q : Où le jeu de données d'entraînement doit-il être stocké ?

Le jeu de données d'entraînement peut être stocké dans un compartiment Amazon S3 ou sur un lecteur Amazon FSx. Veuillez consulter ce document relatif au différents systèmes de fichiers d'entrée pris en charge pour une tâche d'entraînement.

Q : Lors de l'utilisation de la bibliothèque SMDDP, est-il obligatoire de disposer de données d'entraînement dans FSx for Lustre ? Amazon EFS et Amazon S3 peuvent-ils être utilisés ?

Nous vous recommandons généralement d'utiliser Amazon FSx en raison de sa faible latence et de son débit plus élevé. Si vous préférez, vous pouvez utiliser Amazon EFS ou Amazon S3.

Q : La bibliothèque peut-elle être utilisée avec des nœuds CPU ?

Non Pour connaître les types d'instances pris en charge par la bibliothèque SMDDP, consultez. Types d’instance pris en charge

Q : Quels frameworks et versions de framework sont actuellement pris en charge par la bibliothèque SMDDP au moment de son lancement ?

la bibliothèque SMDDP prend actuellement en charge la PyTorch version v1.6.0 ou ultérieure et la TensorFlow version 2.3.0 ou ultérieure. Il ne prend pas en charge la version TensorFlow 1.x. Pour plus d'informations sur la version de la bibliothèque SMDDP intégrée aux conteneurs de AWS Deep Learning, consultez les notes de publication pour les Deep Learning Containers.

Q : La bibliothèque prend-elle en charge l'AMP ?

Oui, la bibliothèque SMDDP prend en charge la technologie AMP (Automatic Mixed Precision) prête à l'emploi. Pour utiliser l'AMP, il vous suffit de modifier le cadre de votre script d'entraînement. Si des dégradés se trouvent dans FP16, la bibliothèque de parallélisme de SageMaker données exécute ses AllReduce opérations dans FP16. Pour plus d'informations sur la mise en œuvre des API AMP dans votre script d'entraînement, consultez les ressources suivantes :

Q : Comment savoir si ma tâche d'entraînement distribuée est ralentie en raison d'un goulet d'étranglement des I/O ?

Avec un cluster plus grand, la tâche d'entraînement nécessite un débit d'I/O plus important et, par conséquent, le débit d'entraînement peut prendre plus de temps (plus d'époques) pour atteindre les performances maximales. Cela indique que les I/O sont engorgées et que le cache est plus difficile à créer à mesure que vous faites évoluer les nœuds (exigence de débit plus élevée et topologie de réseau plus complexe). Pour plus d'informations sur la surveillance du débit d'Amazon FSx CloudWatch, consultez la section Surveillance de FSx for Lustre dans le guide de l'utilisateur de FSx for Lustre.

Q : Comment résoudre les goulets d'étranglement d'I/O lors de l'exécution d'une tâche d'entraînement distribuée avec parallélisme des données ?

Nous vous recommandons vivement d'utiliser Amazon FSx comme canal de données si vous utilisez Amazon S3. Si vous utilisez déjà Amazon FSx, mais que vous rencontrez toujours des problèmes de goulet d'étranglement d'I/O, vous avez peut-être configuré votre système de fichiers Amazon FSx avec un faible débit d'I/O et une petite capacité de stockage. Pour plus d'informations sur l'estimation et le choix de la capacité de débit d'I/O appropriée, veuillez consulter Utiliser Amazon FSx et configurer une capacité de stockage et de débit optimale.

Q : (pour la bibliothèque v1.4.0 ou ultérieure) comment puis-je résoudre l'erreur lors de l'initialisation du groupe de processus.

Si le message d'erreur s'affiche ValueError: Invalid backend: 'smddp' lors de l'appelinit_process_group, cela est dû à une modification importante apportée à la bibliothèque SMDDP v1.4.0 et versions ultérieures. Vous devez importer le PyTorch client de la bibliothèquesmdistributed.dataparallel.torch.torch_smddp, qui s'enregistre smddp en tant que backend pour PyTorch. Pour en savoir plus, veuillez consulter la section Utilisez la bibliothèque SMDDP dans votre script d'entraînement PyTorch .

Q : (Pour la bibliothèque SMDDP v1.4.0 ou ultérieure) J'aimerais appeler les primitives collectives de l'interface. torch.distributed Quelles primitives le backend smddp prend-il en charge ?

Dans la version v1.4.0, la bibliothèque SMDDP prend en chargeall_reduce,broadcast, reduceall_gather, et barrier de l'interface. torch.distributed

Q : (Pour la bibliothèque SMDDP v1.4.0 ou version ultérieure) Cette nouvelle API fonctionne-t-elle avec d'autres classes ou bibliothèques DDP personnalisées, comme Apex DDP ?

La bibliothèque SMDDP est testée avec d'autres bibliothèques parallèles de données distribuées tierces et avec des implémentations de framework qui utilisent les modules. torch.distribtued L'utilisation de la bibliothèque SMDDP avec des classes DDP personnalisées fonctionne tant que les opérations collectives utilisées par les classes DDP personnalisées sont prises en charge par la bibliothèque SMDDP. Reportez-vous à la question précédente pour obtenir une liste des collectifs pris en charge. Si vous avez ces cas d'utilisation et avez besoin d'une assistance supplémentaire, contactez l' SageMaker équipe via le Centre de AWS support ou les forums de AWS développeurs pour Amazon SageMaker.

Q : La bibliothèque SMDDP prend-elle en charge l'option bring-your-own-container (BYOC) ? Si c'est le cas, comment installer la bibliothèque et exécuter une tâche d'entraînement distribuée en écrivant un Dockerfile personnalisé ?

Si vous souhaitez intégrer la bibliothèque SMDDP et ses dépendances minimales dans votre propre conteneur Docker, le BYOC est la bonne approche. Vous pouvez créer votre propre conteneur en utilisant le fichier binaire de la bibliothèque. Le processus recommandé consiste à écrire un Dockerfile personnalisé avec la bibliothèque et ses dépendances, à créer le conteneur Docker, à l'héberger dans Amazon ECR et à utiliser l'URI de l'image ECR pour lancer une tâche de formation à l'aide de la classe d'estimateur générique. SageMaker Pour plus d'instructions sur la façon de préparer un Dockerfile personnalisé pour une formation distribuée SageMaker avec la bibliothèque SMDDP, consultez. Créez votre propre conteneur Docker avec la bibliothèque de données parallèles SageMaker distribuées