View a markdown version of this page

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

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 de données distribué Amazon SageMaker AI

Utilisez les éléments suivants pour trouver des 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 CPU-GPU clusters hétérogènes ou le service d' SageMaker IA crée-t-il des C5 supplémentaires pour les tâches utilisant la bibliothèque SMDDP ?

La bibliothèque SMDDP prend en charge les instances GPU, en particulier les instances P4d et P4de équipées de GPU NVIDIA A100 et d’un EFA. Aucune instance C5 ou CPU supplémentaire n'est lancée ; si votre tâche d'entraînement à l' SageMaker IA se trouve 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.). L'utilisation de la bibliothèque de parallélisme des données de l' SageMaker IA et d'un cluster cinq fois plus grand est-elle suffisante pour atteindre une accélération environ cinq fois plus rapide ? Ou dois-je revoir les hyperparamètres d’entraînement 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 prend-elle en charge les instances 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 à dispositifs multiples ?

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. Consultez ce document relatif au différents systèmes de fichiers d’entrée pris en charge pour une tâche d’entraînement.

Q : Lorsque la bibliothèque SMDDP est utilisée, les données d’entraînement doivent-elles être obligatoirement situées dans FSx pour 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 cadres et versions de cadre sont actuellement pris en charge par la bibliothèque SMDDP au 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 précision mixte automatique (AMP). 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 données SageMaker AI 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 mon travail de formation distribuée est ralenti en raison d'un I/O goulot d'étranglement ?

Dans le cas d'un cluster de plus grande taille, la tâche d'entraînement nécessite un I/O débit plus important. Par conséquent, le débit d'entraînement peut prendre plus de temps (plus d'époques) pour atteindre les performances maximales. Cela indique qu'il I/O y a un engorgement et que le cache est plus difficile à créer à mesure que vous augmentez le volume des nœuds (exigences de débit plus élevées 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 puis-je résoudre les problèmes liés à I/O l'exécution d'une tâche de formation 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 I/O de blocage, vous avez peut-être configuré votre système de fichiers Amazon FSx avec un faible I/O débit et une faible capacité de stockage. Pour plus d'informations sur la manière d'estimer et de choisir la bonne taille de capacité de I/O débit, consultezUtiliser 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 vous rencontrez le message d’erreur ValueError: Invalid backend: 'smddp' lors de l’appel à init_process_group, cela est dû à au changement critique apporté aux versions 1.4.0 et ultérieures de la bibliothèque. 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) Je voudrais appeler les primitives collectives de l’interface torch.distributed. Quelles primitives le backend smddp prend-il en charge ?

Dans la version 1.4.0, la bibliothèque SMDDP prend en charge all_reduce, broadcast, reduce, all_gather et barrier de l’interface torch.distributed.

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

La bibliothèque SMDDP est testée avec d’autres bibliothèques de parallélisme distribué des données et implémentations de cadres tierces 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'équipe SageMaker AI via le Centre de AWS support ou les forums de AWS développeurs pour Amazon SageMaker AI.

Q : La bibliothèque SMDDP prend-elle en charge l’option « apportez votre propre conteneur (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, l’option 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 SageMaker classe d'estimateur générique AI. Pour plus d'instructions sur la façon de préparer un Dockerfile personnalisé pour une formation distribuée en SageMaker IA avec la bibliothèque SMDDP, consultez. Créez votre propre conteneur Docker avec la bibliothèque SageMaker AI Distributed Data Parallel Library