Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Acceda a un contenedor de capacitación AWS Systems Manager para la depuración remota

Modo de enfoque
Acceda a un contenedor de capacitación AWS Systems Manager para la depuración remota - Amazon SageMaker AI

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.

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.

Puedes conectarte de forma segura a los contenedores de SageMaker formación a través de AWS Systems Manager (SSM). Esto le proporciona un acceso en el intérprete de comandos para depurar los trabajos de entrenamiento que se ejecutan dentro del contenedor. También puedes registrar los comandos y las respuestas que se transmiten a Amazon CloudWatch. Si utiliza su propia Amazon Virtual Private Cloud (VPC) para entrenar un modelo, puede utilizarla para configurar un punto final de VPC para SSM y conectarse AWS PrivateLink a los contenedores de forma privada a través de SSM.

Puede conectarse a SageMaker AI Framework Containers o conectarse a su propio contenedor de entrenamiento configurado con el entorno de entrenamiento. SageMaker

Configurar permisos de IAM

Para habilitar el SSM en tu contenedor de SageMaker entrenamiento, debes configurar un rol de IAM para el contenedor. Para que usted o los usuarios de su AWS cuenta puedan acceder a los contenedores de formación a través de SSM, debe configurar los usuarios de IAM con permisos para usar SSM.

rol de IAM

Para que un contenedor de SageMaker formación comience con el agente de SSM, proporciona un rol de IAM con permisos de SSM.

Para habilitar la depuración remota para su trabajo de formación, la SageMaker IA debe iniciar el agente SSM en el contenedor de formación cuando comience el trabajo de formación. Para permitir que el agente de SSM se comunique con el servicio de SSM, agregue la siguiente política al rol de IAM que utiliza para ejecutar su trabajo de entrenamiento.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" } ] }

Usuario de IAM

Agregue la siguiente política para proporcionar permisos de sesión de SSM a un usuario de IAM para conectarse a un destino de SSM. En este caso, el objetivo del SSM es un SageMaker contenedor de formación.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }

Para restringir que los usuarios de IAM se conecten únicamente a contenedores para trabajos de entrenamiento específicos, agregue la clave Condition, como se muestra en el siguiente ejemplo de política.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": [ "*" ], "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:target-id": [ "sagemaker-training-job:*" ] } } } ] }

También puede usar de manera explícita la clave de condición sagemaker:EnableRemoteDebug para restringir la depuración remota. A continuación, se muestra un ejemplo de política que restringe la depuración remota a los usuarios de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyRemoteDebugInTrainingJob", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:UpdateTrainingJob" ], "Resource": "*", "Condition": { "BoolIfExists": { "sagemaker:EnableRemoteDebug": false } } } ] }

Para obtener más información, consulte Claves de condición de Amazon SageMaker AI en la Referencia AWS de autorización de servicio.

¿Cómo habilitar la depuración remota para un trabajo de SageMaker formación

En esta sección, aprenda a habilitar la depuración remota al iniciar o actualizar un trabajo de formación en Amazon SageMaker AI.

SageMaker Python SDK

Con la clase estimator del SDK de SageMaker Python, puedes activar o desactivar la depuración remota mediante el enable_remote_debug parámetro o los enable_remote_debug() métodos and. disable_remote_debug()

Habilitación de la depuración remota al crear un trabajo de entrenamiento

Para habilitar la depuración remota al crear un nuevo trabajo de entrenamiento, establezca el parámetro enable_remote_debug en True. El valor predeterminado es False, por lo que si no establece este parámetro en absoluto, o lo establece explícitamente en False, la funcionalidad de depuración remota estará deshabilitada.

import sagemaker session = sagemaker.Session() estimator = sagemaker.estimator.Estimator( ..., sagemaker_session=session, image_uri="<your_image_uri>", #must be owned by your organization or Amazon DLCs role=role, instance_type="ml.m5.xlarge", instance_count=1, output_path=output_path, max_run=1800, enable_remote_debug=True )

Habilitación de la depuración remota mediante la actualización de un trabajo de entrenamiento

Con los siguientes métodos de clase estimator, puede habilitar o deshabilitar la depuración remota mientras se ejecuta un trabajo de entrenamiento cuando el valor de SecondaryStatus del trabajo es Downloading o Training.

# Enable RemoteDebug estimator.enable_remote_debug() # Disable RemoteDebug estimator.disable_remote_debug()
AWS SDK for Python (Boto3)

Habilitación de la depuración remota al crear un trabajo de entrenamiento

Para habilitar la depuración remota al crear un nuevo trabajo de entrenamiento, establezca el valor de la clave EnableRemoteDebug en True en el parámetro RemoteDebugConfig.

import boto3 sm = boto3.Session(region_name=region).client("sagemaker") # Start a training job sm.create_training_job( ..., TrainingJobName=job_name, AlgorithmSpecification={ // Specify a training Docker container image URI // (Deep Learning Container or your own training container) to TrainingImage. "TrainingImage": "<your_image_uri>", "TrainingInputMode": "File" }, RoleArn=iam_role_arn, OutputDataConfig=output_path, ResourceConfig={ "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "VolumeSizeInGB": 30 }, StoppingCondition={ "MaxRuntimeInSeconds": 86400 }, RemoteDebugConfig={ "EnableRemoteDebug": True } )

Habilitación de la depuración remota mediante la actualización de un trabajo de entrenamiento

Con la API update_traing_job, puede habilitar o deshabilitar la depuración remota mientras se ejecuta un trabajo de entrenamiento cuando el SecondaryStatus del trabajo es Downloading o Training.

# Update a training job sm.update_training_job( TrainingJobName=job_name, RemoteDebugConfig={ "EnableRemoteDebug": True # True | False } )
AWS Command Line Interface (CLI)

Habilitación de la depuración remota al crear un trabajo de entrenamiento

Prepare un archivo de solicitud CreateTrainingJob en formato JSON, de la siguiente manera.

// train-with-remote-debug.json { "TrainingJobName": job_name, "RoleArn": iam_role_arn, "AlgorithmSpecification": { // Specify a training Docker container image URI (Deep Learning Container or your own training container) to TrainingImage. "TrainingImage": "<your_image_uri>", "TrainingInputMode": "File" }, "OutputDataConfig": { "S3OutputPath": output_path }, "ResourceConfig": { "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "VolumeSizeInGB": 30 }, "StoppingCondition": { "MaxRuntimeInSeconds": 86400 }, "RemoteDebugConfig": { "EnableRemoteDebug": True } }

Después de guardar el archivo JSON, ejecute el siguiente comando en el terminal en el que envía el trabajo de entrenamiento. En el siguiente comando de ejemplo se presupone que el nombre del archivo JSON es train-with-remote-debug.json. Si lo ejecuta desde un cuaderno de Jupyter, agregue un signo de exclamación (!) al comienzo de la línea.

aws sagemaker create-training-job \ --cli-input-json file://train-with-remote-debug.json

Habilitación de la depuración remota mediante la actualización de un trabajo de entrenamiento

Prepare un archivo de solicitud UpdateTrainingJob en formato JSON, de la siguiente manera.

// update-training-job-with-remote-debug-config.json { "TrainingJobName": job_name, "RemoteDebugConfig": { "EnableRemoteDebug": True } }

Después de guardar el archivo JSON, ejecute el siguiente comando en el terminal en el que envía el trabajo de entrenamiento. En el siguiente comando de ejemplo se presupone que el nombre del archivo JSON es train-with-remote-debug.json. Si lo ejecuta desde un cuaderno de Jupyter, agregue un signo de exclamación (!) al comienzo de la línea.

aws sagemaker update-training-job \ --cli-input-json file://update-training-job-with-remote-debug-config.json

Con la clase estimator del SDK de SageMaker Python, puedes activar o desactivar la depuración remota mediante el enable_remote_debug parámetro o los enable_remote_debug() métodos and. disable_remote_debug()

Habilitación de la depuración remota al crear un trabajo de entrenamiento

Para habilitar la depuración remota al crear un nuevo trabajo de entrenamiento, establezca el parámetro enable_remote_debug en True. El valor predeterminado es False, por lo que si no establece este parámetro en absoluto, o lo establece explícitamente en False, la funcionalidad de depuración remota estará deshabilitada.

import sagemaker session = sagemaker.Session() estimator = sagemaker.estimator.Estimator( ..., sagemaker_session=session, image_uri="<your_image_uri>", #must be owned by your organization or Amazon DLCs role=role, instance_type="ml.m5.xlarge", instance_count=1, output_path=output_path, max_run=1800, enable_remote_debug=True )

Habilitación de la depuración remota mediante la actualización de un trabajo de entrenamiento

Con los siguientes métodos de clase estimator, puede habilitar o deshabilitar la depuración remota mientras se ejecuta un trabajo de entrenamiento cuando el valor de SecondaryStatus del trabajo es Downloading o Training.

# Enable RemoteDebug estimator.enable_remote_debug() # Disable RemoteDebug estimator.disable_remote_debug()

Acceso a su contenedor de entrenamiento

Puede acceder a un contenedor de entrenamiento cuando el SecondaryStatus del trabajo de entrenamiento correspondiente es Training. Los siguientes ejemplos de código muestran cómo comprobar el estado de tu trabajo de formación mediante la DescribeTrainingJob API, cómo comprobar los registros del trabajo de formación y cómo iniciar sesión en el contenedor de formación. CloudWatch

Comprobación del estado de un trabajo de entrenamiento

SageMaker Python SDK

Para comprobar la calidad SecondaryStatus de un trabajo de formación, ejecuta el siguiente código del SDK de SageMaker Python.

import sagemaker session = sagemaker.Session() # Describe the job status training_job_info = session.describe_training_job(job_name) print(training_job_info)
AWS SDK for Python (Boto3)

Para comprobar el SecondaryStatus de un trabajo de entrenamiento, ejecute el siguiente código del SDK para Python (Boto3).

import boto3 session = boto3.session.Session() region = session.region_name sm = boto3.Session(region_name=region).client("sagemaker") # Describe the job status sm.describe_training_job(TrainingJobName=job_name)
AWS Command Line Interface (CLI)

Para comprobar si se SecondaryStatus trata de un trabajo de formación, ejecuta el siguiente AWS CLI comando para la SageMaker IA.

aws sagemaker describe-training-job \ --training-job-name job_name

Para comprobar la calidad SecondaryStatus de un trabajo de formación, ejecuta el siguiente código del SDK de SageMaker Python.

import sagemaker session = sagemaker.Session() # Describe the job status training_job_info = session.describe_training_job(job_name) print(training_job_info)

Para buscar el nombre del host de un contenedor de entrenamiento

Para conectarse al contenedor de entrenamiento a través de SSM, utilice este formato para el ID de destino: sagemaker-training-job:<training-job-name>_algo-<n>, donde algo-<n> es el nombre del host del contenedor. Si su trabajo se ejecuta en una sola instancia, el host siempre es algo-1. Si ejecuta un trabajo de formación distribuido en varias instancias, la SageMaker IA crea el mismo número de hosts y flujos de registro. Por ejemplo, si utilizas 4 instancias, la SageMaker IA crea algo-1algo-2,algo-3, yalgo-4. Debe determinar qué flujo de registro desea depurar y su número de host. Para acceder a los flujos de registro asociados a un trabajo de entrenamiento, haga lo siguiente:

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

  2. En el panel de navegación izquierdo, elija Entrenamiento y, a continuación, Trabajos de entrenamiento.

  3. En la lista Trabajos de entrenamiento, elija el trabajo de entrenamiento que desee depurar. Se abrirá la página de detalles del trabajo de entrenamiento.

  4. En la sección Supervisión, elija Ver registros. La lista de registros de trabajos de formación relacionados se abre en la CloudWatch consola.

  5. Los nombres de los flujos de registro tienen el formato <training-job-name>/algo-<n>-<time-stamp>, donde algo-<n> representa el nombre del host.

Para obtener más información sobre cómo la SageMaker IA gestiona la información de configuración para la formación distribuida en varias instancias, consulte Configuración de formación distribuida.

Acceso al contenedor de entrenamiento

Utilice el siguiente comando en el terminal para iniciar la sesión de SSM (aws ssm start-session) y conectarse al contenedor de entrenamiento.

aws ssm start-session --target sagemaker-training-job:<training-job-name>_algo-<n>

Por ejemplo, si el nombre del trabajo de entrenamiento es training-job-test-remote-debug y el nombre del host es algo-1, el ID de destino pasa a ser sagemaker-training-job:training-job-test-remote-debug_algo-1. Si la salida de este comando es similar a Starting session with SessionId:xxxxx, la conexión se ha realizado correctamente.

Acceda a SSM con AWS PrivateLink

Si sus contenedores de formación se ejecutan en una Amazon Virtual Private Cloud que no está conectada a la Internet pública, puede utilizarlos AWS PrivateLink para habilitar SSM. AWS PrivateLink restringe todo el tráfico de red entre sus instancias de punto final, SSM y Amazon EC2 a la red de Amazon. Para obtener más información sobre cómo configurar el acceso SSM con AWS PrivateLink, consulte Configurar un punto de conexión de Amazon VPC para Session Manager.

Registro de los comandos y los resultados de la sesión de SSM

Tras seguir las instrucciones de Creación de un documento de preferencias de Session Manager (línea de comandos), puede crear documentos de SSM que definan sus preferencias para las sesiones de SSM. Puede utilizar los documentos de SSM para configurar las opciones de sesión, incluidos el cifrado de datos, la duración de la sesión y el registro. Por ejemplo, puede especificar si desea almacenar los datos del registro de sesión en un bucket de Amazon Simple Storage Service (Amazon S3) o en un grupo de CloudWatch Amazon Logs. Puede crear documentos que definan las preferencias generales para todas las sesiones de una AWS cuenta o documentos que definan las preferencias de las sesiones individuales. Región de AWS

Solución de problemas consultando los registros de errores del SSM

Amazon SageMaker AI carga los errores del agente SSM a los CloudWatch registros del grupo de /aws/sagemaker/TrainingJobs registros. A los flujos de registro del agente de SSM se les asignan nombres con el formato <job-name>/algo-<n>-<timestamp>/ssm. Por ejemplo, si crea un trabajo de formación de dos nodos denominadotraining-job-test-remote-debug, el registro del trabajo de formación training-job-test-remote-debug/algo-<n>-<timestamp> y varios registros de errores del agente SSM training-job-test-remote-debug/algo-<n>-<timestamp>/ssm se cargan en sus registros. CloudWatch En este ejemplo, puede revisar los flujos de registro de */ssm para solucionar problemas de SSM.

training-job-test-remote-debug/algo-1-1680535238 training-job-test-remote-debug/algo-2-1680535238 training-job-test-remote-debug/algo-1-1680535238/ssm training-job-test-remote-debug/algo-2-1680535238/ssm

Consideraciones

Ten en cuenta lo siguiente cuando utilices la depuración remota mediante SageMaker IA.

  • La depuración remota no es compatible con los contenedores de algoritmos de SageMaker IA ni con los contenedores a partir de SageMaker IA. AWS Marketplace

  • No puede iniciar una sesión de SSM para los contenedores que tengan habilitado el aislamiento de red porque el aislamiento impide las llamadas de red salientes.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.