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
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.
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
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-1
algo-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:
Abre la consola Amazon SageMaker AI en https://console.aws.amazon.com/sagemaker/
. -
En el panel de navegación izquierdo, elija Entrenamiento y, a continuación, Trabajos de entrenamiento.
-
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.
-
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.
-
Los nombres de los flujos de registro tienen el formato
<training-job-name>/algo-<n>-<time-stamp>
, dondealgo-<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.