Considerazioni per Amazon SageMaker Debugger - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Considerazioni per Amazon SageMaker Debugger

Considera quanto segue quando usi Amazon SageMaker Debugger.

Considerazioni sull’addestramento distribuito

L'elenco seguente mostra l'ambito di validità e le considerazioni per l'utilizzo di Debugger in processi di addestramento con framework di deep learning e varie opzioni di addestramento distribuito.

  • Horovod

    Ambito di validità dell'utilizzo di Debugger per processi di addestramento con Horovod

    Framework Deep Learning Apache MXNet TensorFlow 1.x TensorFlow 2.x TensorFlow 2.x con Keras PyTorch
    Colli di bottiglia di bottiglia del sistema di monitoraggio
    Operazioni del framework di profilazione No No No
    Debug dei tensori di output del modello
  • SageMaker dati distribuiti in parallelo

    Ambito di validità dell'utilizzo di Debugger per lavori di formazione con SageMaker dati distribuiti in parallelo

    Framework Deep Learning TensorFlow 2.x TensorFlow 2.x con Keras PyTorch
    Colli di bottiglia di bottiglia del sistema di monitoraggio
    Operazioni del framework di profilazione No* No**
    Debug dei tensori di output del modello

    * Debugger non supporta la profilazione del framework per 2.x. TensorFlow

    ** SageMaker distributed data parallel non supporta TensorFlow 2.x con l'implementazione Keras.

  • SageMaker modello distribuito parallelo: il debugger non supporta l'addestramento parallelo su SageMaker modelli distribuiti.

  • Formazione distribuita con SageMaker checkpoint: Debugger non è disponibile per i lavori di formazione quando sono abilitati sia l'opzione di formazione distribuita che i checkpoint. SageMaker È possibile che venga visualizzato un errore simile al seguente:

    SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled

    Per utilizzare Debugger per lavori di formazione con opzioni di formazione distribuite, è necessario disabilitare il SageMaker checkpointing e aggiungere funzioni di checkpoint manuali allo script di allenamento. Per ulteriori informazioni sull'uso di Debugger con opzioni di addestramento e checkpoint distribuiti, consulta Utilizzo di dati SageMaker distribuiti in parallelo con Amazon SageMaker Debugger e checkpoint e Salvataggio dei checkpoint.

  • Server di parametri: Debugger non supporta l'addestramento distribuito basato su server di parametri.

  • La profilazione delle operazioni del framework di formazione distribuito, come il AllReduced funzionamento parallelo di dati SageMaker distribuiti e le operazioni Horovod, non è disponibile.

Considerazioni sul monitoraggio dei colli di bottiglia del sistema e sulle operazioni del framework di profilazione

  • Infatti AWS TensorFlow, le metriche del caricatore di dati non possono essere raccolte utilizzando l'impostazione predefinita local_path della classe. FrameworkProfile Il percorso deve essere configurato manualmente e terminare con. "/" Per esempio:

    FrameworkProfile(local_path="/opt/ml/output/profiler/")
  • Infatti AWS TensorFlow, la configurazione della profilazione del caricatore di dati non può essere aggiornata mentre è in esecuzione un processo di formazione.

  • Infatti AWS TensorFlow, potrebbe verificarsi un NoneType errore quando si utilizzano strumenti di analisi ed esempi di taccuini con TensorFlow 2.3 lavori di formazione e l'opzione di profilazione dettagliata.

  • La profilazione Python e la profilazione dettagliata sono supportate solo per Keras. API

  • Per accedere alla funzionalità di profilazione approfondita per TensorFlow e PyTorch, attualmente è necessario specificare le immagini più recenti del contenitore di AWS deep learning con 11. CUDA Ad esempio, è necessario specificare l'immagine specifica URI nello PyTorch stimatore TensorFlow and come segue:

    • Per TensorFlow

      image_uri = f"763104351884.dkr.ecr.{region}.amazonaws.com/tensorflow-training:2.3.1-gpu-py37-cu110-ubuntu18.04"
    • Per PyTorch

      image_uri = f"763104351884.dkr.ecr.{region}.amazonaws.com/pytorch-training:1.6.0-gpu-py36-cu110-ubuntu18.04"

Considerazioni per il debug dei tensori di output del modello

  • Evitare l'uso di API operazioni funzionali. Il debugger non può raccogliere tensori di output del modello PyTorch e script di MXNet addestramento composti da operazioni funzionali. API

    • Il debugger non può raccogliere i tensori di output del modello dalle operazioni. torch.nn.functionalAPI Quando si scrive uno script di PyTorch addestramento, si consiglia di utilizzare invece i moduli. torch.nn

    • Il debugger non può raccogliere i tensori di output del modello da oggetti MXNet funzionali in blocchi ibridi. Ad esempio, gli output di ReLu attivazione (F.relu) non possono essere raccolti dal seguente esempio di with nella funzione. mxnet.gluon.HybridBlockFhybrid_forward

      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)))