Consideraciones sobre Amazon SageMaker Debugger - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Consideraciones sobre Amazon SageMaker Debugger

Tenga en cuenta lo siguiente cuando utilice Amazon SageMaker Debugger.

Consideraciones a tener en cuenta sobre el entrenamiento distribuido

La siguiente lista muestra el alcance de la validez y las consideraciones a la hora de utilizar el depurador en trabajos de entrenamiento con marcos de aprendizaje profundo y diversas opciones de entrenamiento distribuido.

  • Horovod

    Ámbito de validez del uso del depurador para trabajos de entrenamiento con Horovod
    Marco de aprendizaje profundo Apache MXNet TensorFlow 1.x TensorFlow 2.x TensorFlow 2.x con Keras PyTorch
    Cuellos de botella del sistema de monitorización
    Operaciones del marco de creación de perfiles No No No
    Depuración de tensores de salida de modelos
  • SageMaker datos distribuidos en paralelo

    Alcance de validez del uso de Debugger para trabajos de entrenamiento con datos SageMaker distribuidos en paralelo
    Marco de aprendizaje profundo TensorFlow 2.x TensorFlow 2.x con Keras PyTorch
    Cuellos de botella del sistema de monitorización
    Operaciones del marco de creación de perfiles No* No**
    Depuración de tensores de salida de modelos

    * El depurador no admite la creación de perfiles de framework para la versión 2.x. TensorFlow

    ** SageMaker distributed data parallel no admite la versión TensorFlow 2.x con la implementación de Keras.

  • SageMaker modelo distribuido paralelo: el depurador no admite el entrenamiento en paralelo de modelos SageMaker distribuidos.

  • Formación distribuida con SageMaker puntos de control: el depurador no está disponible para los trabajos de formación cuando están habilitados tanto la opción de formación distribuida como los puntos de SageMaker control. Es posible que aparezca un error como el siguiente:

    SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled

    Para utilizar Debugger para tareas de formación con opciones de formación distribuidas, debe desactivar los puntos de control y añadir funciones de SageMaker puntos de control manuales a su guion de formación. Para obtener más información sobre el uso del depurador con opciones de entrenamiento y puntos de control distribuidos, consulte Uso de datos SageMaker distribuidos en paralelo con Amazon SageMaker Debugger y puntos de control y Guardar puntos de control.

  • Servidor de parámetros: el depurador no admite el entrenamiento distribuido basado en un servidor de parámetros.

  • La creación de perfiles de las operaciones del marco de entrenamiento distribuido, como la AllReduced operación de datos SageMaker distribuidos en paralelo y las operaciones Horovod, no está disponible.

Consideraciones para monitorizar los cuellos de botella del sistema y las operaciones del marco de creación de perfiles

  • Por ejemplo AWS TensorFlow, las métricas del cargador de datos no se pueden recopilar con la local_path configuración predeterminada de la clase. FrameworkProfile La ruta debe configurarse manualmente y terminar en "/". Por ejemplo:

    FrameworkProfile(local_path="/opt/ml/output/profiler/")
  • Por ejemplo AWS TensorFlow, la configuración de creación de perfiles del cargador de datos no se puede actualizar mientras se esté ejecutando un trabajo de formación.

  • Por ejemplo AWS TensorFlow, es posible que se produzca un NoneType error al utilizar herramientas de análisis y ejemplos de cuadernos con trabajos de formación de la versión TensorFlow 2.3 y la opción de creación de perfiles detallados.

  • La creación de perfiles de Python y la creación de perfiles detallados solo son compatibles con la API de Keras.

  • Para acceder a la función de creación de perfiles profundos TensorFlow y PyTorch, actualmente, debe especificar las imágenes de contenedores de aprendizaje AWS profundo más recientes con CUDA 11. Por ejemplo, debe especificar el URI de imagen específico en el PyTorch estimador TensorFlow y de la siguiente manera:

    • Para TensorFlow

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

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

Consideraciones para la depuración de los tensores de salida de modelos

  • Evite utilizar operaciones de API funcionales. El depurador no puede recopilar los tensores de salida del modelo ni los scripts de entrenamiento de PyTorch MXNet compuestos por operaciones de API funcionales.

    • El depurador no puede recopilar los tensores de salida de modelos a partir de las operaciones de la API torch.nn.functional. Al escribir un guion de PyTorch entrenamiento, se recomienda utilizar los módulos en su lugar. torch.nn

    • El depurador no puede recopilar los tensores de salida de modelos de los objetos funcionales de MXNet en bloques híbridos. Por ejemplo, los resultados de ReLu activation (F.relu) no se pueden recopilar del siguiente ejemplo de mxnet.gluon.HybridBlockcon F la hybrid_forward función.

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