Uso de 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.

Uso de puntos de control en Amazon SageMaker

Utilice los puntos de control de Amazon SageMaker para guardar el estado de los modelos de machine learning (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.

El mecanismo de entrenamiento de Sagemaker 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 valor 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 Amazon S3. Los puntos de control existentes en S3 se escriben en el contenedor de SageMaker 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 entrenamiento. Sagemaker también escribe nuevos puntos de control desde el contenedor en S3 durante el entrenamiento. Si se elimina un punto de control en el contenedor de Sagemaker, también se eliminará en la carpeta S3.

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 el entrenamiento de spot administrado por SageMaker para ahorrar costes de entrenamiento.

Si utiliza puntos de control con un entrenamiento de spot administrado por SageMaker, SageMaker se encarga de poner puntos de control al entrenamiento de su modelo en una instancia de spot y reanudar el trabajo de entrenamiento en la siguiente instancia de spot. Con el entrenamiento de spot administrado por SageMaker, puede reducir considerablemente el tiempo facturable para el entrenamiento de modelos de ML. 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 ML creados en sus marcos preferidos en SageMaker.

Marcos y algoritmos de SageMaker que admiten puntos de control

Sagemaker admite puntos de control para AWS Containers de aprendizaje profundo y un subconjunto de algoritmos integrados sin necesidad de cambiar el script 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 puntos de control en un trabajo de entrenamiento de spot administrado, SageMaker no permite un tiempo máximo de espera superior a una hora para el trabajo a fin de limitar el tiempo de entrenamiento desperdiciado por las interrupciones.

Para contenedores de entrenamiento personalizados y otros marcos

Si utiliza sus propios contenedores de entrenamiento, scripts de entrenamiento u otros marcos de trabajo que no figuran en la sección anterior, debe configurarlo correctamente mediante devoluciones de llamadas o API de entrenamiento para guardar los puntos de control en la ruta local ('/opt/ml/checkpoints') y cargarlos desde la ruta local en su script de entrenamiento. Los estimadores de Sagemaker pueden sincronizarse con la ruta local y guardar los puntos de control en Amazon S3.

Habilitar 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.


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

En el siguiente ejemplo se muestra cómo configurar las rutas de los puntos de control al crear un estimador de 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 estimador de SageMaker 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 con puntos de control compatibles con SageMaker, consulte Rutas de Docker Registry y código de ejemplo. También puede sustituir estimator y Estimator por las clases principales y estimadoras de otros marcos de trabajo de Sagemaker, como TensorFlow, PyTorch, MXNet, HuggingFace y 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 como '/opt/ml/checkpoints' para que sean coherentes con la configuración predeterminada de los puntos de control de SageMaker. Si prefiere especificar su propia ruta local, asegúrese de hacer coincidir la ruta para guardar los puntos de control de su script de entrenamiento y el parámetro checkpoint_local_path de los estimadores de SageMaker.

  • checkpoint_s3_uri — El URI de un bucket de S3 donde se almacenan los puntos de control en tiempo real.

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

Explore los archivos de puntos de control

Localice los archivos de puntos de control mediante el SDK de SageMaker Python y la consola de 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 Amazon S3 para los puntos de control configurados al solicitar la solicitud CreateTrainingJob. Para encontrar los archivos de puntos de control mediante la consola de Amazon S3, utilice el siguiente procedimiento.

Para encontrar los archivos de puntos de control en la consola de Amazon S3
  1. Inicie sesión en la AWS Management Console y abra la consola de SageMaker 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 Habilitar 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. Compruebe que el bucket de S3 se encuentre en la misma región que la sesión de SageMaker en curso.


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

Consideraciones para establecer 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 puntos de control de alto nivel de SageMaker especifica una única ubicación de Amazon S3 sin sufijos ni prefijos adicionales para etiquetar 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 los puntos de control de SageMaker con SageMaker Debugger y SageMaker distribuidos y tiene problemas, consulte las siguientes páginas para obtener información sobre solución de problemas y aspectos a tener en cuenta.