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.
Considérations relatives à Amazon SageMaker Debugger
Tenez compte des points suivants lorsque vous utilisez Amazon SageMaker Debugger.
Considérations relatives à l'entraînement distribué
La liste suivante présente les domaines de validité et les considérations relatives à l'utilisation de Debugger sur les tâches d'entraînement avec des cadres de deep learning et les différentes options d'entraînement distribué.
-
Horovod
Domaine de validité de l'utilisation de Debugger pour les tâches d'entraînement avec Horovod
Cadre de deep learning Apache MXNet TensorFlow 1. x TensorFlow 2. x TensorFlow 2.x avec Keras PyTorch Surveillance des goulets d'étranglement du système Oui Oui Oui Oui Oui Profilage des opérations de cadre Non Non Non Oui Oui Débogage des tenseurs de sortie de modèle Oui Oui Oui Oui Oui -
SageMaker données distribuées en parallèle
Portée de validité de l'utilisation de Debugger pour des tâches de formation avec des données SageMaker distribuées en parallèle
Cadre de deep learning TensorFlow 2. x TensorFlow 2.x avec Keras PyTorch Surveillance des goulets d'étranglement du système Oui Oui Oui Profilage des opérations de cadre Non* Non** Oui Débogage des tenseurs de sortie de modèle Oui Oui Oui * Le débogueur ne prend pas en charge le profilage du framework pour TensorFlow 2.x.
** SageMaker distributed data parallel ne prend pas en charge la version TensorFlow 2.x avec l'implémentation de Keras.
-
SageMaker distributed model parallel : le Debugger ne prend pas en charge l'entraînement en parallèle du modèle SageMaker distribué.
-
Formation distribuée avec SageMaker points de contrôle — Le débogueur n'est pas disponible pour les tâches de formation lorsque l'option de formation distribuée et les points de SageMaker contrôle sont activés. Une erreur semblable à ce qui suit peut s'afficher :
SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled
Pour utiliser Debugger pour des tâches de formation avec des options de formation distribuées, vous devez désactiver le point de SageMaker contrôle et ajouter des fonctions de pointage manuel à votre script d'entraînement. Pour de plus amples informations sur l'utilisation de Debugger avec des options d'entraînement distribué et des points de contrôle, veuillez consulter Utilisation de données SageMaker distribuées en parallèle avec Amazon SageMaker Debugger et les points de contrôle et Sauvegarde des points de contrôle.
-
Serveur de paramètres – Debugger ne prend pas en charge l'entraînement distribué basé sur le serveur de paramètres.
-
Le profilage des opérations du framework d'entraînement distribué, telles que le
AllReduced
fonctionnement des opérations en parallèle avec les données SageMaker distribuées et les opérations Horovod, n'est pas disponible.
Considérations relatives à la surveillance des goulets d'étranglement du système et au profilage des opérations de cadre
-
En effet AWS TensorFlow, les métriques du chargeur de données ne peuvent pas être collectées à l'aide du
local_path
paramètre par défaut de laFrameworkProfile
classe. Le chemin doit être configuré manuellement et se terminer par"/"
. Par exemple :FrameworkProfile(local_path="/opt/ml/output/profiler/")
-
En effet AWS TensorFlow, la configuration de profilage du chargeur de données ne peut pas être mise à jour pendant l'exécution d'une tâche de formation.
-
En effet AWS TensorFlow, une
NoneType
erreur peut se produire lorsque vous utilisez des outils d'analyse et des exemples de blocs-notes avec des tâches de formation TensorFlow 2.3 et l'option de profilage détaillé. -
Le profilage en Python et le profilage détaillé ne sont pris en charge que pour KerasAPI.
-
Pour accéder à la fonctionnalité de profilage approfondi pour TensorFlow et PyTorch, actuellement, vous devez spécifier les dernières images de conteneur d'apprentissage AWS profond avec CUDA 11. Par exemple, vous devez spécifier l'image spécifique URI dans l' PyTorch estimateur TensorFlow et comme suit :
-
Pour TensorFlow
image_uri = f"763104351884.dkr.ecr.{region}.amazonaws.com/tensorflow-training:2.3.1-gpu-py37-cu110-ubuntu18.04"
-
Pour PyTorch
image_uri = f"763104351884.dkr.ecr.{region}.amazonaws.com/pytorch-training:1.6.0-gpu-py36-cu110-ubuntu18.04"
-
Considérations relatives au débogage des tenseurs de sortie de modèle
-
Évitez d'utiliser API des opérations fonctionnelles. Le débogueur ne peut pas collecter les tenseurs de sortie du modèle à partir de scripts PyTorch d'MXNetentraînement composés d'opérations fonctionnelles. API
-
Le débogueur ne peut pas collecter les tenseurs de sortie du modèle à partir des opérations.
torch.nn.functional
API Lorsque vous rédigez un script de PyTorch formation, il est recommandé d'utiliser plutôt les torch.nn
modules. -
Le débogueur ne peut pas collecter les tenseurs de sortie du modèle à partir d'objets MXNet fonctionnels dans des blocs hybrides. Par exemple, les sorties ReLu activation (
F.relu
) ne peuvent pas être collectées à partir de l'exemple suivant demxnet.gluon.HybridBlock
with F
in thehybrid_forward
function.import mxnet as mx from mxnet.gluon import HybridBlock, nn class Model(HybridBlock): def __init__(self, **kwargs): super(Model, self).__init__(**kwargs) # use name_scope to give child Blocks appropriate names. with self.name_scope(): self.dense0 = nn.Dense(20) self.dense1 = nn.Dense(20) def hybrid_forward(self, F, x): x = F.relu(self.dense0(x)) return F.relu(self.dense1(x)) model = Model() model.initialize(ctx=mx.cpu(0)) model.hybridize() model(mx.nd.zeros((10, 10), ctx=mx.cpu(0)))
-