Úselo TensorBoard para depurar y analizar trabajos de formación 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.

Úselo TensorBoard para depurar y analizar trabajos de formación en Amazon SageMaker

Amazon SageMaker with TensorBoard es una capacidad de Amazon SageMaker que lleva las herramientas de TensorBoardvisualización integradas con SageMaker Training y Domain. SageMaker Ofrece opciones para administrar su AWS cuenta y los usuarios que pertenecen a la cuenta a través del SageMaker dominio, permitir que los usuarios del dominio accedan a los TensorBoard datos con los permisos adecuados en Amazon S3 y ayudar a los usuarios del dominio a realizar tareas de depuración de modelos mediante los complementos de TensorBoard visualización. SageMaker TensorBoard se amplía con el complemento SageMaker Data Manager, con el que los usuarios del dominio pueden acceder a varios trabajos de formación en un solo lugar de la TensorBoard aplicación.

nota

Esta función sirve para entrenar y depurar modelos de aprendizaje profundo mediante el TensorFlow marco PyTorch or.

Para científicos de datos

El entrenamiento de modelos grandes puede plantear problemas científicos que requieran que los científicos de datos deban depurarlos y resolverlos para mejorar la convergencia de los modelos y estabilizar los procesos de descenso de gradientes.

Cuando tenga problemas con el entrenamiento de los modelos, como que las pérdidas no converjan o que los pesos y gradientes se desvanezcan o exploten, necesitará acceder a los datos de los tensores para profundizar y analizar los parámetros del modelo, los escalares y cualquier métrica personalizada. Si lo usa SageMaker TensorBoard, puede visualizar los tensores de salida del modelo extraídos de los trabajos de entrenamiento. A medida que experimente con diferentes modelos, varias sesiones de entrenamiento e hiperparámetros de modelos, podrá seleccionar varios trabajos de entrenamiento TensorBoard y compararlos en un solo lugar.

Para administradores

A través de la página de TensorBoard inicio de la SageMaker consola o el SageMaker dominio, puede administrar los usuarios de la TensorBoard aplicación si es administrador de una AWS cuenta o SageMaker dominio. Cada usuario del dominio puede acceder a su propia TensorBoard aplicación con los permisos concedidos. Como SageMaker administrador y usuario del dominio, puede crear y eliminar la TensorBoard aplicación en función del nivel de permisos del que disponga.

Marcos compatibles y Regiones de AWS

Esta característica es compatible con los siguientes marcos de machine learning y Regiones de AWS.

Marcos
  • PyTorch

  • TensorFlow

  • Hugging Face Transformers

Regiones de AWS
  • Este de EE. UU. (Norte de Virginia) (us-east-1)

  • Este de EE. UU. (Ohio) (us-east-2)

  • Oeste de EE. UU. (Oregón) (us-west-2)

  • Europa (Fráncfort) (eu-central-1)

  • Europa (Irlanda) (eu-west-1)

nota

Amazon SageMaker TensorBoard ejecuta la TensorBoard aplicación en una ml.r5.large instancia e incurre en cargos una vez finalizada la capa SageMaker gratuita o el período de prueba gratuito de la función. Para obtener más información, consulte Precios de Amazon SageMaker.

Requisitos previos

En la siguiente lista se muestran los requisitos previos para empezar a SageMaker utilizarla. TensorBoard

Prepare un trabajo de formación con una configuración TensorBoard de datos de salida

Un trabajo de formación típico para el aprendizaje profundo SageMaker consta de dos pasos principales: preparar un guion de formación y configurar un lanzador de tareas de SageMaker formación. En esta sección, puede comprobar los cambios necesarios para recopilar datos TensorBoard compatibles de Training. SageMaker

Paso 1: Modifica tu guion de entrenamiento

Asegúrese de determinar qué tensores y escalares de salida desea recopilar y modifique las líneas de código del guion de entrenamiento con cualquiera de las siguientes herramientas: TensorBoard X, TensorFlow Summary Writer, PyTorch Summary Writer o SageMaker Debugger.

Asegúrese también de especificar la ruta de salida de los TensorBoard datos como el directorio de registro (log_dir) para la devolución de llamadas en el contenedor de entrenamiento.

Para obtener más información sobre las devoluciones de llamadas por marco, consulta los siguientes recursos.

Paso 2: Cree un lanzador de SageMaker entrenamiento con TensorBoard la configuración de datos

Úselo sagemaker.debugger.TensorBoardOutputConfig mientras configura un estimador de SageMaker marco. Esta API de configuración mapea el depósito de S3 que especifique para guardar TensorBoard los datos con la ruta local del contenedor de entrenamiento ()/opt/ml/output/tensorboard. Pase el objeto del módulo al tensorboard_output_config parámetro de la clase del estimador. El siguiente fragmento de código muestra un ejemplo de cómo preparar un TensorFlow estimador con el parámetro de configuración de salida. TensorBoard

nota

En este ejemplo se supone que utilizas el SDK de SageMaker Python. Si utilizas la SageMaker API de bajo nivel, debes incluir lo siguiente en la sintaxis de solicitud de la CreateTrainingJobAPI.

"TensorBoardOutputConfig": { "LocalPath": "/opt/ml/output/tensorboard", "S3OutputPath": "s3_output_bucket" }
from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import TensorBoardOutputConfig # Set variables for training job information, # such as s3_out_bucket and other unique tags. ... LOG_DIR="/opt/ml/output/tensorboard" output_path = os.path.join( "s3_output_bucket", "sagemaker-output", "date_str", "your-training_job_name" ) tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=os.path.join(output_path, 'tensorboard'), container_local_output_path=LOG_DIR ) estimator = TensorFlow( entry_point="train.py", source_dir="src", role=role, image_uri=image_uri, instance_count=1, instance_type="ml.c5.xlarge", base_job_name="your-training_job_name", tensorboard_output_config=tensorboard_output_config, hyperparameters=hyperparameters )

¿Cómo acceder a TensorBoard SageMaker

Puede acceder TensorBoard mediante dos métodos: mediante programación, mediante el sagemaker.interactive_apps.tensorboard módulo que genera una URL prefirmada o sin firmar, o mediante la página de TensorBoard destino de la consola. SageMaker Tras abrirlo TensorBoard, SageMaker ejecuta el TensorBoard plugin y busca automáticamente todos los datos de salida del trabajo de entrenamiento en TensorBoard un formato de archivo compatible.

Ábrelo TensorBoard usando el módulo sagemaker.interactive_apps.tensorboard

El sagemaker.interactive_apps.tensorboard módulo proporciona una función denominada get_app_url que genera URL prefirmadas o sin firmar para abrir la TensorBoard aplicación en cualquier entorno de Amazon SageMaker EC2. El objetivo es proporcionar una experiencia unificada tanto a los usuarios de Studio Classic como a los que no lo son. En el entorno de Studio, puede abrirla TensorBoard ejecutando la get_app_url() función tal como está, o también puede especificar un nombre de trabajo para iniciar el seguimiento a medida que se abra la TensorBoard aplicación. En el caso de entornos que no sean de Studio Classic, puede TensorBoard abrirlos proporcionando la información de su dominio y perfil de usuario a la función de utilidad. Con esta funcionalidad, independientemente de dónde o cómo ejecute el código de formación y lance los trabajos de formación, puede acceder directamente a ella TensorBoard ejecutando la get_app_url función en su portátil o terminal Jupyter.

nota

Esta funcionalidad está disponible en el SDK de SageMaker Python v2.184.0 y versiones posteriores. Para usar esta funcionalidad, asegúrese de actualizar el SDK ejecutándolo. pip install sagemaker --upgrade

Opción 1: para SageMaker Studio Classic

Si utiliza SageMaker Studio Classic, puede abrir directamente la TensorBoard aplicación o recuperar una URL sin firmar ejecutando la get_app_url función de la siguiente manera. Como ya se encuentra en el entorno de Studio Classic y ha iniciado sesión como usuario del dominio, get_app_url() genera una URL sin firmar porque no es necesario volver a autenticarse.

Para abrir la aplicación TensorBoard

El siguiente código abre automáticamente la TensorBoard aplicación desde la URL sin firmar que la get_app_url() función devuelve en el navegador web predeterminado de su entorno.

from sagemaker.interactive_apps import tensorboard region = "us-west-2" app = tensorboard.TensorBoardApp(region) app.get_app_url( training_job_name="your-training_job_name" # Optional. Specify the job name to track a specific training job )

Para recuperar una URL sin firmar y abrir la aplicación manualmente TensorBoard

El siguiente código imprime una URL sin firmar que puede copiar en un navegador web y abrir la TensorBoard aplicación.

from sagemaker.interactive_apps import tensorboard region = "us-west-2" app = tensorboard.TensorBoardApp(region) print("Navigate to the following URL:") print( app.get_app_url( training_job_name="your-training_job_name", # Optional. Specify the name of the job to track. open_in_default_web_browser=False # Set to False to print the URL to terminal. ) )

Tenga en cuenta que si ejecuta los dos ejemplos de código anteriores fuera del entorno de SageMaker Studio Classic, la función devolverá una URL a la página de TensorBoard destino de la SageMaker consola, ya que no contienen información de inicio de sesión en su dominio ni en su perfil de usuario. Para crear una URL prefirmada, consulte la opción 2 en la siguiente sección.

Opción 2: para entornos que no sean de Studio Classic

Si utiliza entornos que no son de Studio Classic, como una instancia de SageMaker Notebook o Amazon EC2, y desea TensorBoard abrir directamente desde el entorno en el que se encuentra, debe generar una URL prefirmada con la información de su dominio y perfil de usuario. Una URL prefirmada es una URL en la que se inicia sesión en Amazon SageMaker Studio Classic mientras se crea la URL con su dominio y perfil de usuario y, por lo tanto, se le concede acceso a todas las aplicaciones y archivos de dominio asociados a su dominio. Para abrirla TensorBoard a través de una URL prefirmada, usa la get_app_url función con el nombre de tu dominio y perfil de usuario de la siguiente manera.

Tenga en cuenta que esta opción requiere que el usuario del dominio tenga el sagemaker:CreatePresignedDomainUrl permiso. Sin el permiso, el usuario del dominio recibirá un error de excepción.

importante

No compartas ninguna URL prefirmada. La get_app_url función crea URL prefirmadas, que se autentican automáticamente con tu dominio y perfil de usuario y dan acceso a todas las aplicaciones y archivos asociados a tu dominio.

print( app.get_app_url( training_job_name="your-training_job_name", # Optional. Specify the name of the job to track. create_presigned_domain_url=True, # Reguired to be set to True for creating a presigned URL. domain_id="your-domain-id", # Required if creating a presigned URL (create_presigned_domain_url=True). user_profile_name="your-user-profile-name", # Required if creating a presigned URL (create_presigned_domain_url=True). open_in_default_web_browser=False, # Optional. Set to False to print the URL to terminal. optional_create_presigned_url_kwargs={} # Optional. Add any additional args for Boto3 create_presigned_domain_url ) )
sugerencia

La get_app_url función ejecuta la SageMaker.Client.create_presigned_domain_urlAPI AWS SDK for Python (Boto3) en el backend. Como la create_presigned_domain_url API de Boto3 crea URL de dominio prefirmadas que caducan en 300 segundos de forma predeterminada, las URL de TensorBoard aplicaciones prefirmadas también caducan en 300 segundos. Si desea extender el tiempo de caducidad, pase el ExpiresInSeconds argumento al argumento de la función de la siguiente maneraoptional_create_presigned_url_kwargs. get_app_url

optional_create_presigned_url_kwargs={"ExpiresInSeconds": 1500}
nota

Si alguna de las entradas transferidas a los argumentos de no get_app_url es válida, la función envía una URL a la página de TensorBoard destino en lugar de abrir la TensorBoard aplicación. El mensaje de salida sería similar al siguiente.

Navigate to the following URL: https://us-west-2.console.aws.amazon.com/sagemaker/home?region=us-west-2#/tensor-board-landing

Abre TensorBoard usando la get_app_url función como método de estimator clase

Si estás realizando un trabajo de entrenamiento con la estimator clase del SDK de SageMaker Python y tienes un objeto activo de la estimator clase, también puedes acceder a la get_app_urlfunción como un método de clase de la estimator clase. Abre la TensorBoard aplicación o recupera una URL sin firmar ejecutando el get_app_url método de la siguiente manera. El método de get_app_url clase extrae el nombre del trabajo de formación del estimador y abre la TensorBoard aplicación con el trabajo especificado.

nota

Esta funcionalidad está disponible en el SDK de SageMaker Python v2.184.0 y versiones posteriores. Para usar esta funcionalidad, asegúrese de actualizar el SDK ejecutándolo. pip install sagemaker --upgrade

Opción 1: para SageMaker Studio Classic

Para abrir la TensorBoard aplicación

El siguiente código abre automáticamente la TensorBoard aplicación desde la URL sin firmar que el get_app_url() método devuelve en el navegador web predeterminado de su entorno.

estimator.get_app_url( app_type=SupportedInteractiveAppTypes.TENSORBOARD # Required. )

Para recuperar una URL sin firmar y abrir la aplicación manualmente TensorBoard

El siguiente código imprime una URL sin firmar que puede copiar en un navegador web y abrir la TensorBoard aplicación.

print( estimator.get_app_url( app_type=SupportedInteractiveAppTypes.TENSORBOARD, # Required. open_in_default_web_browser=False, # Optional. Set to False to print the URL to terminal. ) )

Tenga en cuenta que si ejecuta los dos ejemplos de código anteriores fuera del entorno de SageMaker Studio Classic, la función devolverá una URL a la página de TensorBoard destino de la SageMaker consola, ya que no contienen información de inicio de sesión en su dominio ni en su perfil de usuario. Para crear una URL prefirmada, consulte la opción 2 en la siguiente sección.

Opción 2: para entornos que no sean de Studio Classic

Si utiliza entornos que no son de Studio Classic, como la instancia de SageMaker Notebook y Amazon EC2, y desea generar una URL prefirmada para abrir TensorBoard la aplicación, utilice el método con la información de su dominio y perfil de usuario de get_app_url la siguiente manera.

Tenga en cuenta que esta opción requiere que el usuario del dominio tenga el permiso. sagemaker:CreatePresignedDomainUrl Sin el permiso, el usuario del dominio recibirá un error de excepción.

importante

No compartas ninguna URL prefirmada. La get_app_url función crea URL prefirmadas, que se autentican automáticamente con tu dominio y perfil de usuario y dan acceso a todas las aplicaciones y archivos asociados a tu dominio.

print( estimator.get_app_url( app_type=SupportedInteractiveAppTypes.TENSORBOARD, # Required create_presigned_domain_url=True, # Reguired to be set to True for creating a presigned URL. domain_id="your-domain-id", # Required if creating a presigned URL (create_presigned_domain_url=True). user_profile_name="your-user-profile-name", # Required if creating a presigned URL (create_presigned_domain_url=True). open_in_default_web_browser=False, # Optional. Set to False to print the URL to terminal. optional_create_presigned_url_kwargs={} # Optional. Add any additional args for Boto3 create_presigned_domain_url ) )

TensorBoard Ábrelo a través de la consola SageMaker

También puede utilizar la interfaz de usuario de la SageMaker consola para abrir la TensorBoard aplicación. Hay dos opciones para abrir la TensorBoard aplicación a través de la SageMaker consola.

Opción 1: iniciar TensorBoard desde la página de detalles del dominio

Ve a la página de detalles del dominio

El siguiente procedimiento muestra cómo ir a la página de detalles del dominio.

  1. Abre la SageMaker consola de Amazon en https://console.aws.amazon.com/sagemaker/.

  2. En el panel de navegación izquierdo, seleccione Configuraciones de administración.

  3. En Configuraciones de administración, selecciona dominios.

  4. En la lista de dominios, selecciona el dominio en el que quieres lanzar la TensorBoard aplicación.

Inicie una aplicación de perfil de usuario

El siguiente procedimiento muestra cómo iniciar una aplicación de Studio Classic que esté relacionada con un perfil de usuario.

  1. En la página de detalles del dominio, seleccione la pestaña Perfiles de usuario.

  2. Identifique el perfil de usuario para el que desea iniciar la aplicación Studio Classic.

  3. Elija Launch para el perfil de usuario seleccionado y, a continuación, elija TensorBoard.

Opción 2: iniciar TensorBoard desde la página TensorBoard de destino

El siguiente procedimiento describe cómo iniciar una TensorBoard aplicación desde la página de TensorBoard destino.

  1. Abre la SageMaker consola de Amazon en https://console.aws.amazon.com/sagemaker/.

  2. En el panel de navegación izquierdo, selecciona TensorBoard.

  3. En Comenzar, selecciona el dominio en el que quieres iniciar la aplicación Studio Classic. Si su perfil de usuario solo pertenece a un dominio, no verá la opción para seleccionar un dominio.

  4. Seleccione el perfil de usuario para el que desee iniciar la aplicación Studio Classic. Si no hay ningún perfil de usuario en el dominio, elija Crear perfil de usuario. Para obtener más información, consulte Add and Remove User Profiles.

  5. Selecciona Abrir TensorBoard.

La siguiente captura de pantalla muestra la ubicación de TensorBoard en el panel de navegación izquierdo de la SageMaker consola y la SageMaker página de TensorBoard destino en el panel principal.

La página TensorBoard de destino

Acceda a los datos de los resultados del entrenamiento y visualícelos en TensorBoard

Puede realizar un análisis en línea o fuera de línea cargando los tensores de salida recopilados de los cubos S3 junto con los trabajos de entrenamiento durante o después del entrenamiento.

Al abrir la TensorBoard aplicación, TensorBoard se abre con la pestaña Gestor de SageMaker datos. La siguiente captura de pantalla muestra la vista completa de la pestaña Administrador de SageMaker datos de la TensorBoard aplicación.

Captura de pantalla de la pestaña Administrador de SageMaker datos de la TensorBoard aplicación

En la pestaña SageMaker Data Manager, puede seleccionar cualquier trabajo de formación y cargar datos TensorBoard de salida de formación compatibles de Amazon S3.

  1. En la sección Buscar trabajos de formación, utilice los filtros para reducir la lista de trabajos de formación que desea buscar, cargar y visualizar.

  2. En la sección Lista de trabajos de formación, utilice las casillas de verificación para elegir los trabajos de formación de los que desee extraer datos y visualizarlos para su depuración.

  3. Seleccione Añadir los trabajos seleccionados. Los trabajos seleccionados deberían aparecer en la sección Trabajos de formación rastreados, como se muestra en la siguiente captura de pantalla.

    Captura de pantalla de la sección de trabajos de formación rastreados, situada en la pestaña Gestor de SageMaker datos de la TensorBoard aplicación
nota

La pestaña Gestor de SageMaker datos solo muestra los trabajos de formación configurados con el TensorBoardOutputConfig parámetro. Asegúrese de haber configurado el SageMaker estimador con este parámetro. Para obtener más información, consulte Paso 2: Cree un lanzador de SageMaker entrenamiento con TensorBoard la configuración de datos.

nota

Es posible que las pestañas de visualización no aparezcan si se utiliza SageMaker with TensorBoard por primera vez o si no se han cargado datos de un uso anterior. Tras añadir tareas de entrenamiento y esperar unos segundos, actualiza el visor pulsando la flecha circular en el sentido de las agujas del reloj situada en la esquina superior derecha. Las pestañas de visualización deberían aparecer una vez que los datos del trabajo se hayan cargado correctamente. También puedes configurar la actualización automática mediante el botón Configuración situado junto al botón de actualización en la esquina superior derecha.

Explora los datos de salida del entrenamiento visualizados en TensorBoard

En las pestañas gráficas, puedes ver la lista de los trabajos de entrenamiento cargados en el panel izquierdo. También puede utilizar las casillas de verificación de los trabajos de formación para mostrar u ocultar las visualizaciones. Los complementos TensorBoard dinámicos se activan de forma dinámica en función de cómo hayas configurado tu guion de entrenamiento para incluir redactores de resúmenes y repasar llamadas para recopilar tensores y escalares, por lo que las pestañas gráficas también aparecen de forma dinámica. Las siguientes capturas de pantalla muestran ejemplos de vistas de cada pestaña con la visualización de dos trabajos de entrenamiento que recopilaban métricas para complementos de series temporales, escalares, gráficos, distribución e histogramas.

La vista de pestañas SERIES TEMPORALES

Captura de pantalla de la pestaña SERIES TEMPORALES que muestra los TensorBoard datos de los trabajos de entrenamiento seleccionados para su seguimiento y los diagramas de histogramas serializados en el panel principal .

Vista de la pestaña ESCALARES

Captura de pantalla de la pestaña ESCALARES que muestra los TensorBoard datos de los trabajos de entrenamiento seleccionados para su seguimiento y los gráficos de los valores escalares, como la precisión y la pérdida, con respecto al paso (o época) del panel principal.

Vista de la pestaña GRÁFICOS

Captura de pantalla de la pestaña GRÁFICOS que muestra el gráfico modelo de un trabajo de formación seleccionado.

Vista de la pestaña DISTRIBUCIONES

Captura de pantalla de la pestaña DISTRIBUCIONES que muestra los TensorBoard datos de los trabajos de entrenamiento seleccionados para su seguimiento y los cambios en la distribución de los parámetros del modelo, como los sesgos y los núcleos, con respecto al paso (o época) del panel principal.

Vista de la pestaña HISTOGRAMAS

Captura de pantalla de la pestaña HISTOGRAMAS que muestra los TensorBoard datos de los trabajos de entrenamiento seleccionados para su seguimiento y los histogramas serializados de los parámetros del modelo, como los sesgos y los núcleos, en el panel principal.

Elimine las aplicaciones no utilizadas TensorBoard

Cuando haya terminado de monitorizar y experimentar con las tareas TensorBoard, cierre la TensorBoard aplicación.

  1. Abre la SageMaker consola.

  2. En el panel de navegación izquierdo, seleccione Configuraciones de administración.

  3. En Configuraciones de administrador, selecciona dominios.

  4. Seleccione su dominio.

  5. Elige tu perfil de usuario.

  6. En Aplicaciones, selecciona Eliminar aplicación para la TensorBoard fila.

  7. Elija Sí, eliminar aplicación.

  8. Escribe delete en el cuadro de texto y, a continuación, selecciona Eliminar.

  9. Debería aparecer un mensaje azul en la parte superior de la pantalla: se elimina por defecto.

Consideraciones

Tenga en cuenta lo siguiente cuando lo utilice SageMaker con TensorBoard.

  • No puede compartir las TensorBoard aplicaciones con fines de colaboración porque el SageMaker dominio no permite compartir aplicaciones entre los usuarios. Los usuarios pueden compartir los tensores de salida guardados en un depósito de S3 si tienen acceso al depósito.

  • Es posible que los complementos de visualización no aparezcan al iniciar la TensorBoard aplicación por primera vez. Tras seleccionar los trabajos de formación en el complemento SageMaker Data Manager, la TensorBoard aplicación carga los TensorBoard datos y rellena los complementos de visualización.

  • La TensorBoard aplicación se cierra automáticamente tras 1 hora de inactividad. Si desea cerrar la aplicación cuando termine de usarla, asegúrese de cerrarla manualmente para no tener que pagar por la instancia TensorBoard que la aloja. Para obtener instrucciones sobre cómo eliminar la aplicación, consulteElimine las aplicaciones no utilizadas TensorBoard .

  • La TensorBoard aplicación SageMaker está diseñada para proporcionar out-of-the-box soporte para trabajos SageMaker de formación. Esta integración integrada permite un mapeo perfecto entre el directorio local dentro del contenedor de entrenamiento y un bucket de Amazon S3, lo que se facilita en la capa de CreateTrainingJobAPI. Con esta integración, puede mapear sin esfuerzo las rutas de los directorios, tal y como se describe en la sección Prepare un trabajo de formación con una configuración TensorBoard de datos de salida.

    Sin embargo, tenga en cuenta que la TensorBoard aplicación no out-of-the-box admite tareas de ajuste de SageMaker hiperparámetros, ya que la CreateHyperParameterTuningJobAPI no está integrada en la configuración de TensorBoard salida del mapeo. Para utilizar la TensorBoard aplicación para tareas de ajuste de hiperparámetros, debe escribir el código para cargar las métricas en Amazon S3 en su guion de entrenamiento. Una vez que las métricas se hayan cargado en un bucket de Amazon S3, podrá cargar el bucket en la TensorBoard aplicación SageMaker.