Usa puntos de control en Amazon SageMaker - 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.

Usa puntos de control en Amazon SageMaker

Usa los puntos de control de Amazon SageMaker para guardar el estado de los modelos de aprendizaje automático (ML) durante el entrenamiento. Los puntos de control son instantáneas del modelo y se pueden configurar mediante las funciones de devolución de llamadas de los marcos de ML. Puede utilizar los puntos de control guardados para reiniciar un trabajo de entrenamiento desde el último punto de control guardado.

Con los puntos de control, puede hacer lo siguiente:

  • Guarde las instantáneas de sus modelos durante el entrenamiento por una interrupción inesperada del trabajo o instancia de entrenamiento.

  • Reanude el entrenamiento del modelo en el futuro desde un punto de control.

  • Analice el modelo en las etapas intermedias de entrenamiento.

  • Utilice los puntos de control con S3 Express One Zone para aumentar las velocidades de acceso.

  • Utilice los puntos de control con formación puntual SageMaker gestionada para ahorrar costes de formación.

El mecanismo de SageMaker entrenamiento utiliza contenedores de entrenamiento en las instancias de Amazon EC2 y los archivos de puntos de control se guardan en un directorio local de contenedores (el predeterminado es). /opt/ml/checkpoints SageMaker proporciona la funcionalidad de copiar los puntos de control de la ruta local a Amazon S3 y sincroniza automáticamente los puntos de control de ese directorio con S3. Los puntos de control existentes en S3 se escriben en el SageMaker contenedor al inicio del trabajo, lo que permite que los trabajos se reanuden desde un punto de control. Los puntos de control que se añaden a la carpeta S3 una vez iniciado el trabajo no se copian en el contenedor de formación. SageMaker también escribe nuevos puntos de control del contenedor en S3 durante el entrenamiento. Si se elimina un punto de control del SageMaker contenedor, también se eliminará de la carpeta S3.

Puede utilizar los puntos de control en Amazon SageMaker con la clase de almacenamiento Amazon S3 Express One Zone (S3 Express One Zone) para acceder más rápido a los puntos de control. Al habilitar los puntos de control y especificar el URI de S3 para el destino de almacenamiento del punto de control, puede proporcionar un URI de S3 para una carpeta de un depósito de uso general de S3 o un depósito de directorio de S3. Para obtener más información sobre S3 Express One Zone y los buckets de directorio de S3, consulte Qué es S3 Express One Zone.

Si utiliza puntos de control con una formación puntual SageMaker gestionada, SageMaker gestiona la formación de su modelo en una instancia puntual y la reanudación del trabajo de formación en la siguiente instancia puntual. Con la formación puntual SageMaker gestionada, puede reducir considerablemente el tiempo facturable dedicado al entrenamiento de modelos de aprendizaje automático. Para obtener más información, consulte Utilice Managed Spot Training en Amazon SageMaker.

Puntos de control para marcos y algoritmos en SageMaker

Utilice los puntos de control para guardar instantáneas de los modelos de aprendizaje automático creados en sus marcos preferidos. SageMaker

SageMaker marcos y algoritmos que admiten los puntos de control

SageMaker admite puntos de control para AWS Deep Learning Containers y un subconjunto de algoritmos integrados sin necesidad de cambiar el guion de entrenamiento. SageMaker guarda los puntos de control en la ruta local predeterminada '/opt/ml/checkpoints' y los copia en Amazon S3.

Si se utiliza un algoritmo prediseñado que no admite los puntos de control en un trabajo de formación presencial gestionado, SageMaker no se permite un tiempo máximo de espera superior a una hora para realizar el trabajo a fin de limitar el tiempo de formación desperdiciado debido a las interrupciones.

Para contenedores de entrenamiento personalizados y otros marcos

Si utiliza sus propios contenedores de formación, guiones de formación u otros marcos que no se enumeran en la sección anterior, debe configurar correctamente su guion de formación mediante llamadas o API de formación para guardar los puntos de control en la ruta local ('/opt/ml/checkpoints') y cargarlos desde la ruta local en su guion de formación. SageMaker los estimadores pueden sincronizarse con la ruta local y guardar los puntos de control en Amazon S3.

Habilite los puntos de control

Tras activar los puntos de control, SageMaker guarda los puntos de control en Amazon S3 y sincroniza el trabajo de entrenamiento con el bucket de puntos de control S3. Puede usar buckets S3 de uso general o de directorio S3 para su bucket S3 de puntos de control.

Diagrama de arquitectura en el que se escriben los puntos de control durante el entrenamiento.

El siguiente ejemplo muestra cómo configurar las rutas de los puntos de control al construir un estimador. SageMaker Para activar los puntos de control, añada los parámetros checkpoint_s3_uri y checkpoint_local_path a su estimador.

La siguiente plantilla de ejemplo muestra cómo crear un SageMaker estimador genérico y habilitar los puntos de control. Puede utilizar esta plantilla para los algoritmos compatibles especificando el parámetro image_uri. Para encontrar los URI de imágenes de Docker para algoritmos compatibles con puntos de control SageMaker, consulte las rutas de registro y el código de ejemplo de Docker. También puede reemplazar estimator y por Estimator las clases principales y SageMaker estimadoras de otros marcos, como,, y. TensorFlow PyTorch MXNet HuggingFace XGBoost

import sagemaker from sagemaker.estimator import Estimator bucket=sagemaker.Session().default_bucket() base_job_name="sagemaker-checkpoint-test" checkpoint_in_bucket="checkpoints" # The S3 URI to store the checkpoints checkpoint_s3_bucket="s3://{}/{}/{}".format(bucket, base_job_name, checkpoint_in_bucket) # The local path where the model will save its checkpoints in the training container checkpoint_local_path="/opt/ml/checkpoints" estimator = Estimator( ... image_uri="<ecr_path>/<algorithm-name>:<tag>" # Specify to use built-in algorithms output_path=bucket, base_job_name=base_job_name, # Parameters required to enable checkpointing checkpoint_s3_uri=checkpoint_s3_bucket, checkpoint_local_path=checkpoint_local_path )

Los dos parámetros siguientes especifican las rutas para los puntos de control:

  • checkpoint_local_path — Especifique la ruta local en la que el modelo guarda los puntos de control periódicamente en un contenedor de entrenamiento. El valor predeterminado se establece en '/opt/ml/checkpoints'. Si va a utilizar otros marcos o va a traer su propio contenedor de entrenamiento, asegúrese de que la configuración de puntos de control de su script de entrenamiento especifique la ruta a '/opt/ml/checkpoints'.

    nota

    Recomendamos especificar las rutas locales para que sean coherentes con la configuración predeterminada de '/opt/ml/checkpoints' los puntos de control. SageMaker Si prefieres especificar tu propia ruta local, asegúrate de hacer coincidir la ruta de guardado del punto de control que aparece en tu guion de entrenamiento y el checkpoint_local_path parámetro de los SageMaker estimadores.

  • checkpoint_s3_uri — El URI de un bucket de S3 donde se almacenan los puntos de control en tiempo real. Puedes especificar un bucket de S3 de uso general o un bucket de directorio de S3 para almacenar los puntos de control. Para obtener más información sobre los depósitos de directorio de S3, consulte los depósitos de directorio en la Guía del usuario de Amazon Simple Storage Service.

Para obtener una lista completa de los parámetros del SageMaker estimador, consulte la API del estimador en la documentación del SDK de Amazon Python SageMaker .

Explore los archivos de puntos de control

Localice los archivos de puntos de control mediante el SDK de SageMaker Python y la consola Amazon S3.

Para buscar los archivos de puntos de control mediante programación

Para recuperar el URI del bucket de S3 en el que se guardan los puntos de control, compruebe el siguiente atributo del estimador:

estimator.checkpoint_s3_uri

Esto devuelve la ruta de salida de S3 para los puntos de control configurados al solicitar la CreateTrainingJob solicitud. Para buscar los archivos de puntos de control guardados mediante la consola S3, utilice el siguiente procedimiento.

Para buscar los archivos de puntos de control en la consola S3
  1. Inicie sesión en la SageMaker consola AWS Management Console y ábrala en https://console.aws.amazon.com/sagemaker/.

  2. En el panel de navegación situado a la izquierda, elija Trabajos de entrenamiento.

  3. Elija el enlace al trabajo de entrenamiento con los puntos de control activados para abrir la Configuración del trabajo.

  4. En la página de Configuración del trabajo de entrenamiento, busque la sección Configuración del punto de control.

    Sección de configuración de puntos de control en la página de configuración del trabajo de un trabajo de entrenamiento.
  5. Utilice el enlace al bucket de S3 para acceder a los archivos de puntos de control.

Reanude el entrenamiento desde un punto de control

Para reanudar un trabajo de entrenamiento desde un punto de control, ejecute un nuevo estimador con el mismo checkpoint_s3_uri que creó en la sección Habilite los puntos de control. Una vez que se haya reanudado el entrenamiento, se restablecerán los puntos de control de este bucket de S3 a checkpoint_local_path en cada instancia del nuevo trabajo de entrenamiento. Asegúrese de que el bucket de S3 esté en la misma región que el de la SageMaker sesión actual.

Diagrama de arquitectura de la sincronización de puntos de control para reanudar el entrenamiento.

Reparaciones de clústeres para detectar errores en la GPU

Si estás realizando un trabajo de entrenamiento que falla en una GPU, SageMaker realizarás una comprobación del estado de la GPU para comprobar si el fallo está relacionado con un problema con la GPU. SageMaker realiza las siguientes acciones en función de los resultados de la comprobación de estado:

  • Si el error es recuperable y se puede corregir reiniciando la instancia o reiniciando la GPU, SageMaker reiniciará la instancia.

  • Si el error no se puede recuperar y se debe a la necesidad de reemplazar una GPU, se sustituirá la instancia. SageMaker

La instancia se reemplaza o se reinicia como parte de un SageMaker proceso de reparación del clúster. Durante este proceso, verá el siguiente mensaje en el estado de su trabajo de formación:

Repairing training cluster due to hardware failure

SageMaker intentará reparar el clúster 10 varias veces. Si la reparación del clúster se realiza correctamente, SageMaker se reiniciará automáticamente el trabajo de entrenamiento desde el punto de control anterior. Si se produce un error en la reparación del clúster, también se producirá un error en el trabajo de formación. No se le facturará el proceso de reparación del clúster. Las reparaciones de los clústeres no se iniciarán a menos que su trabajo de formación falle. Si se detecta un problema con la GPU en un clúster de Warmpool, el clúster pasará al modo de reparación para reiniciar o reemplazar la instancia defectuosa. Tras la reparación, el clúster podrá seguir utilizándose como clúster de piscina caliente.

El proceso de reparación de clústeres e instancias descrito anteriormente se muestra en el siguiente diagrama:

The cluster repair process checks for training errors and attempts to fix them if they are caused by a GPU.

Consideraciones sobre los puntos de control

Tenga en cuenta lo siguiente al utilizar puntos de control en. SageMaker

  • Para evitar sobrescribir en un entrenamiento distribuido con varias instancias, debe configurar manualmente los nombres y las rutas de los archivos de puntos de control en su script de entrenamiento. La configuración de SageMaker puntos de control de alto nivel especifica una única ubicación de Amazon S3 sin sufijos ni prefijos adicionales para etiquetar los puntos de control de varias instancias.

  • El SDK de SageMaker Python no admite una configuración de alto nivel para la frecuencia de los puntos de control. Para controlar la frecuencia de los puntos de control, modifique el script de entrenamiento mediante las funciones de guardado del modelo o las llamadas de puntos de control del marco.

  • Si utiliza SageMaker puntos de control con SageMaker Debugger y SageMaker Distributed y tiene problemas, consulte las páginas siguientes para obtener información sobre la solución de problemas y las consideraciones.